Les piles et les files.

Les piles et les files.

stack, queue

Voir version :

Pas de dépendances

Télécharger :

#include <iostream>
#include <stack>
#include <queue>

using namespace std;

int main()
{
    stack<int> s;
    queue<int> q;
    
    s.push(5);
    s.push(13);
    s.push(8);
    s.push(6);

    q.push(5);
    q.push(13);
    q.push(8);
    q.push(6);

    cout << "lecture de la pile" << endl;
    while(!s.empty())
    {
        cout << s.top() << endl;
        s.pop();
    }

    cout << "lecture de la file" << endl;
    while(!q.empty())
    {
        cout << q.front() << endl;
        q.pop();
    }
    return 0;
}



Commentaires


Voici encore un conteneur tres pratique :

  J'étudie les 2 en meme temps dans cet exemple, car il sont simples et pratique :

  queue : c'est une FILE (dans le sens "file d'attente de cinéma")
  stack : c'est une PILE (dans le sens "pile de cartes (du verbe empiler)")

  L'exemple est simple : je crée une file q et une pile s.
  Ce sont des piles/files de <int>. Je peux bien sur empiler n'importe quoi : des float, des double, ou des classes "mon type a moi"
  Avec la méthode "push", j'ajoute un élément.

  Remarquez les premieres lignes : j'ajoute les memes éléments dans le meme ordre, a s et q.
  Vous pouvez donc remarquer qu'on ajoute ainsi un element : avec "push"

  Les while qu'il y a derriere s'appuient sur leur méthode "empty() qui renvoie vrai si la pile/file est vide.
  littéralement ça veut dire "tant que ce n'est pas vide".

  Donc ce que je fais dans le while, je sors les éléments 1 par 1 et je les affiche.

  Maintenant, prenons les exemples :

  Pour la pile : imaginez une pile de carte a jouer, ou vous allez mettre des cartes numérotées dessus (par exemple les cartes atout d'un jeu de tarot)
  vous mettez le "5" sur la table, puis vous empilez le "13", puis le "8", puis le "6".

  Maintenant, vous voulez traiter 1 par 1, dans l'ordre de la pile bien sur, donc vous soulevez les cartes une par une, et vous avez bien sur 6,8,13 et 5.

  Pour la file : imaginez une file d'attente de cinéma.
  Un gars qui s'appelle "5" arrive.
  puis un autre qui s'appelle "13", il se met a la queue.
  puis "8", puis "6".

  Maintenant, vous voulez les traiter 1 par 1, dans l'ordre de la file bien sur, donc vous avez d'abord 5, puis 13, puis 8, puis 6.

  Lancez le programme pour vérifier tout ça, c'est tout bon !