Cours_C_02.pdf - Cours de programmation Structures de donnes lmentaires dynamiques Olivier Aumage LIP ENS Lyon(bureau 302 46 alle dItalie 69364 Lyon

Cours_C_02.pdf - Cours de programmation Structures de...

This preview shows page 1 - 8 out of 31 pages.

Cours de programmation Structures de données élémentaires dynamiques Olivier Aumage LIP, ENS Lyon (bureau 302), 46, allée d’Italie, 69364 Lyon Cedex 07 email : [email protected] Octobre 2001
Image of page 1
2
Image of page 2
Table des matières 1 Introduction 5 1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Au programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Listes chaînées 7 2.1 Listes simplement chaînées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1 Principe, forme générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Notion de maillon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Maillon suivant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Notion de liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.2 Définition en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Le maillon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 La liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Types à usage public, types à usage privé . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.3 Fonctions de parcours simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Longueur de la liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Affichage de la liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.4 Fonctions de modification de la liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Insertion en tête . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Suppression en tête . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Insertion en queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Suppression en queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.5 Duplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 La notion d’ aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Duplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Autres formes de listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.1 Listes doublement chaînées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Déclaration des maillons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Déclaration de la liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.2 Listes circulaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Structures dérivées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.1 Piles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.2 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Arbres 13 3.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.1 Principe, forme générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Notion de noeud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3
Image of page 3
Notion d’arbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Arbres n-aires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Arbres binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2.1 Déclaration en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Le noeud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 L’arbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2.2 Algorithmes simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Taille de l’arbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Hauteur de l’arbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2.3 Parcours en profondeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Exemple : affichage de l’arbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Approche itérative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.4 Parcours en largeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.3 Autres formes d’arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.3.1 Arbres généralisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Déclaration du noeud généralisé en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Déclaration de l’arbre en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.4 Structures dérivées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4 Tableaux et tables 21 4.1 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.1.1 Principe, forme générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.1.2 Définition en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Tableaux de types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Tableaux de structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.1.3 Opérateur crochets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.1.4 Fonctions de parcours simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Parcours linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Parcours dichotomique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2 Chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2.1 Principe, forme générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2.2 Définition en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2.3 Fonctions de parcours simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.3 Tables de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Alvéoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Résolution des collisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Importance de la fonction de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.2 Définition en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.3 Mise en oeuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Fonction de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Ajout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4
Image of page 4
Chapitre 1 Introduction 1.1 Définition Une structure dynamique est une structure dont la taille peut varier en fonction des besoins. 1.2 Au programme Il est prévu de voir les structures suivantes : 1. listes chaînées ; 2. arbres ; 3. tableaux et tables. 5
Image of page 5
6
Image of page 6
Chapitre 2 Listes chaînées 2.1 Listes simplement chaînées 2.1.1 Principe, forme générale Notion de maillon L’élément de base d’une liste chaînée s’appelle le maillon . Il est constitué : – d’un champ de données ; – d’un pointeur vers un maillon. Maillon suivant Le champ pointeur vers un maillon pointe vers le maillon suivant de la liste. S’il n’y a pas de maillon suivant, le pointeur vaut NULL .
Image of page 7
Image of page 8

You've reached the end of your free preview.

Want to read all 31 pages?

  • Summer '14
  • Arbre, liste chaînée, Structure de données, Chaîne de caractères, Fonction de hachage, Table de hachage

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern

Stuck? We have tutors online 24/7 who can help you get unstuck.
A+ icon
Ask Expert Tutors You can ask You can ask You can ask (will expire )
Answers in as fast as 15 minutes