logo

Pile en C++ STL

Les piles sont un type d'adaptateurs de conteneur avec un fonctionnement de type LIFO (Last In First Out), où un nouvel élément est ajouté à une extrémité (en haut) et un élément est supprimé de cette extrémité uniquement. Stack utilise un objet encapsulé de l'un ou l'autre vecteur ou deque (par défaut) ou liste (classe de conteneur séquentiel) comme conteneur sous-jacent, fournissant un ensemble spécifique de fonctions membres pour accéder à ses éléments.

chaîne en C++

S'il y a une confusion dans la mémorisation de la différence fondamentale entre la pile et la file d'attente, ayez simplement un exemple concret de cette différenciation. Pour la pile, l'empilement de livres, nous pouvons prendre facilement le livre du haut et pour la file d'attente, rappelez-vous quand vous devez vous tenir devant la file d'attente. de guichet automatique pour retirer de l'argent, la première personne proche du guichet automatique a la première chance de retirer l'argent du guichet automatique. Ainsi, la file d'attente est de type FIFO (First In First Out).



Syntaxe de la pile : -

Pour créer une pile, nous devons inclure le fichier d'en-tête dans notre code. Nous utilisons ensuite cette syntaxe pour définir le std::stack :

modèlepile de classes ;

Taper – est le type d’élément contenu dans std::stack. Il peut s'agir de n'importe quel type C++ valide ou même d'un type défini par l'utilisateur.



Récipient – est le type de l’objet conteneur sous-jacent.

Types de membres : -

value_type- Le premier paramètre du modèle, T. Il désigne les types d'éléments.



conteneur_type- Le deuxième paramètre du modèle, Container. Il désigne le type de conteneur sous-jacent.

size_type- Type intégral non signé.

Les fonctions associées à la pile sont :
empty() – Retourne si la pile est vide – Complexité temporelle : O(1)
size() – Renvoie la taille de la pile – Complexité temporelle : O(1)
top() – Renvoie une référence à l'élément le plus haut de la pile – Complexité temporelle : O(1)
push(g) – Ajoute l'élément 'g' en haut de la pile – Complexité temporelle : O(1)
pop() – Supprime l'élément entré le plus récemment dans la pile – Complexité temporelle : O(1)

C++


dérivés partiels en latex



#include> #include> using> namespace> std;> int> main() {> >stack<>int>>pile;> >stack.push(21);>// The values pushed in the stack should be of the same data which is written during declaration of stack> >stack.push(22);> >stack.push(24);> >stack.push(25);> >int> num=0;> >stack.push(num);> >stack.pop();> >stack.pop();> >stack.pop();> > >while> (!stack.empty()) {> >cout << stack.top() <<>' '>;> >stack.pop();> >}> }>

>

>

Sortir

22 21>

Complexité temporelle : La complexité temporelle de ce programme est O(N), où N est le nombre total d'éléments dans la pile. La boucle while itère N fois, extrayant les éléments de la pile et les imprimant.

Complexité spatiale : La complexité spatiale de ce programme est O(N), où N est le nombre total d'éléments dans la pile. La structure de données de pile utilise un espace proportionnel au nombre d'éléments qui y sont stockés. Dans ce cas, la taille maximale de la pile est de 5, donc la complexité spatiale est constante et peut également être considérée comme O(1).

Explication du code :

  1. Incluez le fichier d'en-tête iostream ou dans notre code pour utiliser ses fonctions.
  2. Incluez le fichier d'en-tête de pile dans notre code pour utiliser ses fonctions s'il est déjà inclus, alors pas besoin de fichier d'en-tête de pile car il contient déjà une fonction intégrée.
  3. Incluez l'espace de noms std dans notre code pour utiliser ses classes sans l'appeler.
  4. Appelez la fonction main(). La logique du programme doit être ajoutée dans cette fonction.
  5. Créez une pile pour stocker des valeurs entières.
  6. Utilisez la fonction push() pour insérer la valeur 21 dans la pile.
  7. Utilisez la fonction push() pour insérer la valeur 22 dans la pile.
  8. Utilisez la fonction push() pour insérer la valeur 24 dans la pile.
  9. Utilisez la fonction push() pour insérer la valeur 25 dans la pile.
  10. Utilisez une variable entière num pour saisir une valeur de variable. Ici, sa valeur est 0, mais nous pouvons attribuer n'importe quelle valeur entière en utilisant cin>> num.
  11. Utilisez la fonction push() pour insérer la valeur de la variable num.
  12. Utilisez la fonction pop() pour supprimer l'élément supérieur de la pile, c'est-à-dire 25. L'élément supérieur devient désormais 24.
  13. Utilisez la fonction pop() pour supprimer l'élément supérieur de la pile, c'est-à-dire 24. L'élément supérieur devient désormais 22.
  14. Utilisez une boucle while et une fonction vide() pour vérifier si la pile n'est PAS vide. Le ! est l'opérateur NOT. Ainsi, lorsque la pile n'est pas vide, la fonction empty() renverra false et l'opérateur NOT la convertira en true et la boucle while continuera à fonctionner. Mais, lorsque la pile devient vide, la fonction vide() retournera vrai et l'opérateur NOT le rendra faux et la boucle prendra fin.
  15. Impression du contenu actuel de la pile sur la console.
  16. Appelez la fonction pop() sur la pile.
  17. Fin du corps de la boucle while.
  18. Fin du corps de la fonction main().

Liste des fonctions de Stack :

  • stack::top() en C++ STL
  • stack::empty() et stack::size() en C++ STL
  • stack::push() et stack::pop() en C++ STL
  • stack::swap() en C++ STL
  • stack::emplace() en C++ STL
  • Articles récents sur la pile C++