Numérique et sciences informatiques (NSI) · Terminale

Listes, piles, files et dictionnaires

Une structure de données organise des informations pour qu’on puisse les manipuler efficacement. En Terminale, on distingue soigneusement ce que fait une structure (son interface) de la façon dont elle est programmée (son implémentation). Les structures linéaires — listes, piles, files — et les dictionnaires sont les briques de base de nombreux algorithmes.

Une question sur ce cours ?

ULU, le tuteur d’ULUMINE, t’aide à partir de ce cours.

Séance guidée avec ULU (≈ 10 min)Diagnostic, explication, exercices adaptés et bilan.

Objectifs

  • Distinguer l’interface d’une structure de données de son implémentation
  • Utiliser les primitives d’une liste chaînée, d’une pile et d’une file
  • Implémenter une pile et une file en Python, avec une liste ou une classe
  • Choisir la structure adaptée à un problème, dont le dictionnaire

1. Interface et implémentation

Type abstrait (interface) : Description des opérations disponibles sur une structure (créer, ajouter, retirer, tester si vide…) et de leur effet, sans dire comment elles sont programmées.

Implémentation : Programmation concrète de ces opérations, avec des choix (liste Python, classe, maillons…) qui influencent le coût de chaque opération.

Une liste chaînée est une suite de maillons : chaque maillon contient une valeur et une référence vers le maillon suivant (None pour le dernier). Ses primitives sont : créer une liste vide, tester si elle est vide, ajouter en tête, lire la tête (premier élément) et la queue (la liste des suivants).

2. Les piles (LIFO)

Pile : Structure où le dernier élément ajouté est le premier retiré (LIFO : Last In, First Out), comme une pile d’assiettes. Primitives : pile_vide(), est_vide(p), empiler(p, x), depiler(p) qui retire et renvoie le sommet.

  • Utilisations : historique et bouton « annuler », pile d’appels des fonctions, vérification des parenthèses, évaluation d’expressions postfixées, parcours en profondeur.
  • Avec une liste Python, append et pop en fin de liste se font en temps constant.

3. Les files (FIFO)

File : Structure où le premier élément ajouté est le premier retiré (FIFO : First In, First Out), comme une file d’attente. Primitives : file_vide(), est_vide(f), enfiler(f, x), defiler(f).

Quand la pile de sortie est vide, on y renverse la pile d’entrée : l’élément le plus ancien se retrouve au sommet. Chaque élément n’est transféré qu’une fois. Utilisations des files : file d’impression, traitement de requêtes dans l’ordre d’arrivée, parcours en largeur.

4. Les dictionnaires

Dictionnaire : Ensemble de couples clé → valeur, où chaque clé est unique. On accède à une valeur par sa clé et non par un indice.

À retenir

  • L’interface décrit les opérations ; l’implémentation les programme.
  • Pile : LIFO, empiler et dépiler au sommet.
  • File : FIFO, enfiler à la fin, défiler au début.
  • Liste chaînée : maillons reliés par des références, accès séquentiel.
  • Dictionnaire : accès par clé en temps constant en moyenne.

Et maintenant, à toi !

Vérifie que tu as compris avec les exercices, puis révise avec la fiche.

À découvrir aussi