Structures de données et complexité LIFO – FILO – FIFO – etc…
Structures de données
A quoi ça sert ?!? Savoir ranger les données Tableaux limités Agencer les données dune certaine manière Ex: Processus physiques de type flux…
Les PILES - Stack (LIFO) Last In – First Out Principe de la pile dassiette
Opérations sur les piles Empiler(e): ajouter e en haut de la pile Dépiler(): extraire lélément au sommet Vide(): vider la pile EstVide(): teste si la pile est vide EstPleine(): teste si la pile est pleine
Exemple dutilisation Notation postfixée des expressions arithmétiques 2+5*6 256*- Détermination de palindrome, etc…
Implémentation par tableau Empile Dépile
Les FILES (FIFO) First In – First Out Principe de la File dattente
Opérations sur les files Enfiler(e): ajouter e en haut de la file Défiler(): extraire lélément en bas Vide(): vider la file EstVide(): teste si la file est vide EstPleine(): teste si la file est pleine
Exemple dutilisation File dattente utilisateur ou processus Base de données Etc…
Implémentation par tableau Enfile Empile Défile
Vision circulaire de la file Test pour plein: Fin = Début Test pour vide: Fin = Début Comment faire ? Variable booléenne
Les Listes chaînées Inconvénients des précédents: nombres limités déléments Principe: le jeu de piste; pointeur vers lélément suivant
Opérations sur les Listes Ajoute(e): ajouter e au bout de la liste Récupère(n): extraire lélément à la n ième position Vide(): vider la liste EstVide(): teste si la liste est vide …etc…
Exemple dutilisation On peut implémenter des piles, files, tableaux et bien dautres choses avec des listes.
Les Listes doublement chaînées Inconvénients des listes simplement chaînées: un seul sens de parcours Principe: on rajoute un sens; pointeur vers lélément suivant et lélément précédent
Arbres Binaires Structures arborescentes Utilisations: Langage naturel Algorithme de recherche Jeu, echecs