Empiler

Définition - Que signifie Stack?

Une pile est une structure conceptuelle constituée d'un ensemble d'éléments homogènes et est basée sur le principe du dernier entré, premier sorti (LIFO). C'est un type de données abstrait couramment utilisé avec deux opérations principales, à savoir push et pop. Le push et le pop sont effectués sur l'élément le plus haut, qui est l'élément le plus récemment ajouté à la pile. L'opération push ajoute un élément à la pile tandis que l'opération pop supprime un élément de la position supérieure. Le concept de pile est utilisé dans la programmation et l'organisation de la mémoire dans les ordinateurs.

Definir Tech explique Stack

Une pile représente une séquence d'objets ou d'éléments dans un format de structure de données linéaire. La pile est constituée d'un fond borné et toutes les opérations sont effectuées en position haute. Chaque fois qu'un élément est ajouté à la pile par l'opération push, la valeur supérieure est incrémentée de un, et lorsqu'un élément est sorti de la pile, la valeur supérieure est décrémentée de un. Un pointeur vers la position supérieure de la pile est également appelé pointeur de pile.

Une pile peut être de taille fixe ou peut avoir une implémentation dynamique où la taille est autorisée à changer. Dans le cas de piles de capacité limitée, essayer d'ajouter un élément à une pile déjà pleine provoque une exception de dépassement de capacité de pile. De même, une condition dans laquelle une opération pop tente de supprimer un élément d'une pile déjà vide est appelée sous-débit.

Une pile est considérée comme une structure de données restreinte car seul un nombre limité d'opérations est autorisé. Outre les opérations push et pop, certaines implémentations peuvent permettre des opérations avancées telles que:

  • Peek - Afficher l'élément le plus haut de la pile.
  • Dupliquer - Copiez la valeur de l'élément supérieur dans une variable et repoussez-la dans la pile.
  • Swap - Échangez les deux éléments les plus hauts de la pile.
  • Faire pivoter - Déplacez les éléments les plus hauts de la pile comme spécifié par un nombre ou déplacez-les en rotation.

Les implémentations logicielles du concept de pile sont effectuées à l'aide de tableaux et de listes chaînées où la position supérieure est suivie à l'aide d'une variable ou d'un pointeur d'en-tête respectivement. De nombreux langages de programmation fournissent des fonctionnalités intégrées pour prendre en charge l'implémentation de pile.

Les piles matérielles sont implémentées à des fins d'allocation de mémoire et d'accès en utilisant une origine et une taille fixes. Les registres de pile sont utilisés pour stocker la valeur du pointeur de pile.