2. Réutilisation et hiérarchie dans les types abstraits 56
3. Description des propriétés d'un type de données 57
4. Types abstraits et programmation 61
Lectures conseillées pour le chapitre 4 62
Chapitre 5 - Structures séquentielles 63
1. Les listes 63
1.1. Le type abstrait "Liste itérative" 64
1.2. Le type abstrait "Liste récursive" 66
1.3. Extensions du type liste 67
2. Représentation des listes 68
2.1. Représentation contiguë 68
2.2. Représentation chaînée 70
2.3. Simulation de pointeurs dans un tableau 73
3. Les piles et les files 74
3.1. Les piles 74
3.2. Les files 77
Exercices 80
Lectures conseillées pour le chapitre 5 84
Chapitre 6 - Ensembles 85
1. Spécifications des ensembles 85
1.1. Le type abstrait Ensemble 85
1.2. Enumération d'un ensemble 86
1.3. Cas des ensembles avec répétitions 87
2. Représentation par des tableaux de booléens 88
3. Représentation par des listes 89
3.1. Représentation par un tableau 90
3.2. Analyse du nombre de comparaisons 92
3.3. Représentation par une liste chaînée 94
4. Conclusion 95
Exercices 96
Chapitre 7 - Structures arborescentes 97
1. Arbres binaires 97
1.1. Définitions 99
1.2. Propriétés fondamentales 105
1.3. Représentation des arbres binaires 111
1.4. Parcours d'un arbre binaire 114
2. Arbres planaires généraux 119
2.1. Définitions et propriétés 119
2.2. Parcours des arbres généraux 121
2.3. Représentation des arbres généraux 123
Exercices 128
Lectures conseillées pour le chapitre 7 133
Chapitre 8 - Graphes 135
1. Définitions et exemples 135
2. Terminologie 138
3. Types abstraits Graphes 142
3.1. Spécification des graphes orientés 142
3.2. Compléments à la spécification des graphes orientés 146
3.3. Spécification des graphes non orientés 147
4. Représentations des graphes 148
4.1. Utilisation de matrices 148
4.2. Utilisation de listes d adjacence 150
5. Parcours de graphes 151
5.1. Parcours en profondeur : version récursive 151
5.2. Parcours en profondeur : version itérative 155
5.3. Forêt couvrante associée au parcours en profondeur 156
5.4. Parcours en profondeur d'un graphe non orienté 158
5.5. Parcours en largeur 159
Exercices 161
Lectures conseillées pour le chapitre 8 167
TROISIEME PARTIE - ALGORITHMES DE RECHERCHE 169
Chapitre 9 - Méthodes simples 171
1. Introduction 171
1.1. Quelques exemples 171
1.2. Le problème 172
2. Recherche séquentielle et recherche autoadaptative 175
2.1. Recherche dans une liste non triée 175