ALGORITHMES ET STRUCTURES DE DONNEES

Telechargé par ALLAL ZAID
ALGORITHMES
ET STRUCTURES DE
DONNÉES GÉNÉRIQUES
Cours et exercices corrigés
en langage C
Michel Divay
Professeur à l’université Rennes 1
2
e
édition
000Lim Divay Page I Lundi, 19. janvier 2004 10:56 10
Illustration de couverture :
Lionel Auvergne
© Dunod, Paris, 1999, 2004
ISBN 2 10 007450 4
Ce pictogramme mérite une explication.
Son objet est d’alerter le lecteur sur
la menace que représente pour l’avenir
de l’écrit, particulièrement dans
le domaine de l’édition tech-
nique et universitaire, le dévelop-
pement massif du photo-
copillage.
Le Code de la propriété
intellectuelle du 1er juillet 1992
interdit en effet expressément la
photocopie à usage collectif
sans autorisation des ayants droit. Or,
cette pratique s’est généralisée dans les
établissements d’enseignement supérieur,
provoquant une baisse brutale des achats
de livres et de revues, au point que la
possibilité même pour les auteurs
de créer des œuvres nouvelles et
de les faire éditer correctement
est aujourd’hui menacée.
Nous rappelons donc que
toute reproduction, partielle ou
totale, de la présente publication
est interdite sans autorisation du
Centre français d’exploitation du
droit de copie (CFC, 20 rue des Grands-
Augustins, 75006 Paris).
000Lim Divay Page II Lundi, 19. janvier 2004 10:56 10
© Dunod – La photocopie non autorisée est un délit.
Table des matières
AVANT-PROPOS
IX
CHAPITRE 1 •
RÉCURSIVITÉ, POINTEURS, MODULES
1
1.1 Récursivité des procédures : définition 1
1.2 Exemples de fonctions récursives 2
1.2.1 Exemple 1 : factorielle 2
1.2.2 Exemple 2 : nombres de Fibonacci 4
1.2.3 Exemple 3 : boucles récursives 7
1.2.4 Exemple 4 : numération 8
1.2.5 Exemple 5 : puissance nième d’un nombre 10
1.2.6 Exemple 6 : Tours de Hanoi 11
1.2.7 Exemple 7 : tracés récursifs de cercles 15
1.2.8 Exemple 8 : tracé d’un arbre 17
1.2.9 Conclusions sur la récursivité des procédures 19
1.3 Récursivité des objets 19
1.3.1 Rappel sur les structures 19
1.3.2 Exemple de déclaration incorrecte 20
1.3.3 Structures et pointeurs 20
1.3.4 Opérations sur les pointeurs 23
1.4 Modules 24
1.4.1 Notion de module et de type abstrait de données (TAD) 24
1.4.2 Exemple : module de simulation d’écran graphique 25
1.5 Pointeurs de fonctions 33
1.6 Résumé 34
algorTDM.fm Page III Samedi, 17. janvier 2004 10:33 10
IV
Table des matières
CHAPITRE 2 •
LES LISTES
36
2.1 Listes simples : définition 36
2.2 Représentation en mémoire des listes 37
2.3 Module de gestion des listes 38
2.3.1 Création d’un élément de liste (fonction locale au module sur les listes) 41
2.3.2 Ajout d’un objet 41
2.3.3 Les fonctions de parcours de liste 43
2.3.4 Retrait d’un objet 44
2.3.5 Destruction de listes 47
2.3.6 Recopie de listes 47
2.3.7 Insertion dans une liste ordonnée 47
2.3.8 Le module de gestion de listes 48
2.4 Exemples d’application 51
2.4.1 Le type Personne 51
2.4.2 Liste de personnes 52
2.4.3 Les polynômes 55
2.4.4 Les systèmes experts 61
2.4.5 Les piles 66
2.4.6 Les files d’attente (gérée à l’aide d’une liste) 72
2.5 Avantages et inconvénients des listes 75
2.6 Le type abstrait de données (TAD) liste 75
2.7 Les listes circulaires 75
2.7.1 Le fichier d’en-tête des listes circulaires 76
2.7.2 Insertion en tête de liste circulaire 77
2.7.3 Insertion en fin de liste circulaire 78
2.7.4 Parcours de listes circulaires 78
2.7.5 Le module des listes circulaires 79
2.7.6 Utilisation du module des listes circulaires 79
2.8 Les listes symétriques 80
2.8.1 Le fichier d’en-tête des listes symétriques 80
2.8.2 Le module des listes symétriques 81
2.8.3 Utilisation du module des listes symétriques 84
2.9 Allocation contiguë 86
2.9.1 Allocation - désallocation en cas d’allocation contiguë 86
2.9.2 Exemple des polynômes en allocation contiguë avec liste libre 87
2.9.3 Exemple de la gestion des commandes en attente 89
2.10 Résumé 100
algorTDM.fm Page IV Samedi, 17. janvier 2004 10:33 10
Table des matières
V
© Dunod – La photocopie non autorisée est un délit.
CHAPITRE 3 •
LES ARBRES
102
3.1 Les arbres n-aires 102
3.1.1 Définitions 102
3.1.2 Exemples d’applications utilisant les arbres 103
3.1.3 Représentation en mémoire des arbres n-aires 106
3.2 Les arbres binaires 108
3.2.1 Définition d’un arbre binaire 108
3.2.2 Transformation d’un arbre n-aire en un arbre binaire 108
3.2.3 Mémorisation d’un arbre binaire 109
3.2.4 Parcours d’un arbre binaire 114
3.2.5 Propriétés de l’arbre binaire 122
3.2.6 Duplication, destruction d’un arbre binaire 125
3.2.7 Égalité de deux arbres 127
3.2.8 Dessin d’un arbre binaire 127
3.2.9 Arbre binaire et questions de l’arbre n-aire 130
3.2.10 Le module des arbres binaires 137
3.2.11 Les arbres de chaînes de caractères 140
3.2.12 Arbre binaire et tableau 149
3.2.13 Arbre binaire et fichier 153
3.2.14 Arbre binaire complet 154
3.3 Les arbres binaires ordonnés 156
3.3.1 Définitions 156
3.3.2 Arbres ordonnés : recherche, ajout, retrait 157
3.3.3 Menu de test des arbres ordonnés de chaînes de caractères 163
3.4 Les arbres binaires ordonnés équilibrés 167
3.4.1 Définitions 167
3.4.2 Ajout dans un arbre ordonné équilibré 168
3.4.3 Exemple de test pour les arbres équilibrés 179
3.5 Arbres n-aires ordonnés équilibrés : les b-arbres 182
3.5.1 Définitions et exemples 182
3.5.2 Insertion dans un B-arbre 183
3.5.3 Recherche, parcours, destruction 185
3.6 Résumé 196
CHAPITRE 4 •
LES TABLES
197
4.1 Cas général 197
4.1.1 Définition 197
4.1.2 Exemples d’utilisation de tables 198
4.1.3 Création, initialisation de tables 200
4.1.4 Accès séquentiel 201
4.1.5 Accès dichotomique (recherche binaire) 203
4.1.6 Le module des tables 206
4.1.7 Exemples d’application des tables 210
algorTDM.fm Page V Samedi, 17. janvier 2004 10:33 10
1 / 352 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !