ALGORITHMIQUE - Cours 02 - page
1
/28 - Bertrand LIAUDET
INGESUP - Paris
Algorithmique 2
Structures de données
TAD P.O.O.
Pointeurs Récursivité
Polycopié en cours de réalisation !!!
Bertrand LIAUDET
SOMMAIRE
SOMMAIRE 1
0 - INTRODUCTION 4
1. Structure de données 4
2. Contenu pédagogique 4
1 - LES ENREGISTREMENTS (TYPE STRUCTURE) 5
1. Présentation 5
Usages 5
Structures complexes 5
Renommer un type 6
2 - LES TABLEAUX 7
1. Présentation 7
Le tableau 7
Le taille du tableau 7
Le nombre d’éléments du tableau 7
Imbrication de tableaux et d’enregistrements 7
2. Méthodes de recherche 7
Recherche dans un tableau non trié 7
Recherche dans un tableau trié : la recherche dichotomique 7
3. Méthodes de tri 7
Tri à bulles 7
Tri par extraction (élémentaire, heapsort) 7
Tri par insertion 8
Autres méthodes 8
ALGORITHMIQUE - Cours 02 - page
2
/28 - Bertrand LIAUDET
4. Exercices sur les tableaux 8
Tableaux à une dimension 8
Matrice 9
3 - LES POINTEURS 10
1. Rappels sur la variable 10
Présentation 10
Formalisme NTVA 10
Déclaration et usage 10
2. Pointeurs et opérateur & et * 11
Le type pointeur 11
Opérateur & 11
Opérateur * 11
Exemple 11
allocation, réservation de mémoire 12
libération de la mémoire 12
3. Tableau de pointeurs 13
4. Exercices sur les pointeurs 13
4 - LES LISTES 14
1. Présentation 14
2. Liste simplement chaînées 14
3. Variantes 14
Liste doublement chaînée 14
Liste circulaire 14
Liste avec compteur de maillons 14
4. Exercices sur les listes 14
5 - RECURSIVITE 16
1. Présentation 16
Principe 16
Exemple : somme des N premiers nombres 16
Intérêt et limite de la récursivité 16
2. Exercices 17
Exercice 1 17
Exercice 2 17
Exercice 3 17
Exercice 4 17
Exercice 5 17
6 - LES ARBRES 18
1. Modèle logique des arbres 18
2. ABOH (arbre planaire) 18
Modèle logique 18
Modèle physique des données Version dynamique 18
Algorithmes 19
3. Arbres équilibrés (AVL) 20
4. Arbres B (B trees) 20
Présentation 20
ALGORITHMIQUE - Cours 02 - page
3
/28 - Bertrand LIAUDET
Principes spécifiques 21
Exemple d’arbre B d’ordre 1 21
5. Arbres BB 21
6. Arbres SBB (bicolores). 21
7. Exercices sur les ABOH 22
7 - LES GRAPHES 23
1. Présentation 23
8 - HACHAGE 24
1. Présentation 24
9 - LES TAD : VERS LA P.O.O. 25
1. Présentation générale des TAD 25
Présentation 25
Principaux TAD 25
2. Les chaînes de caractères 25
3. Les piles 26
4. Les files 27
5. Les collections 27
6. Les fichiers 27
10 - USAGES TECHNIQUES DES POINTEURS 28
1. Gestion d’une pile LIFO avec une liste chaînée 28
2. Gestion d’une file FIFO avec une liste chaînée 28
3. Pointeurs et tableaux 28
Tableaux de pointeurs 28
Tableau et chaîne de caractères 28
Tableaux et pointeurs 28
4. Pointeurs et chaînes de caractères 28
5. Pointeurs et mode de passage des paramètres 28
ALGORITHMIQUE - Cours 02 - page
4
/28 - Bertrand LIAUDET
0 - INTRODUCTION
1. Structure de données
Dans la première partie du cours d’algorithmique, on a travaillé uniquement sur les types simples : entier, réel,
caractère et booléen. Le type chaîne de caractères a été abordé sans plus.
Dans ce cours, on va présenter différentes sortes de structures de données.
Une structure de données est un mode particulier d’organisation des données.
On peut aussi créer des types abstraits de données, TAD, qui se caractérise par un type particulier et par un jeu de
primitives (procédures et fonctions) permettant d’exploiter le type sans avoir à connaître les détails de son
implémentation : ils servent d’introduction à la notion de « CLASSE » de la programmation objet.
Pour travailler sur les structures de données, on sera amener à aborder le type « pointeur » et la récursivité.
2. Contenu pédagogique
1. Enregistrements : enregistrement de types de base, enregistrement d’enregistrement.
2. Tableaux : tableau à 1, 2, n dimensions, tableau d’enregistrements, enregistrement de tableaux.
3. Pointeurs.
4. Listes : liste simplement chaînée, liste doublement chaînée, liste circulaire.
5. Récursivité.
6. Arbres : arbres binaires, arbres équilibrés (AVL), arbres B (B tree), arbres bicolores (SBB), arbres planaires.
7. Graphes : graphes non orientés, graphes orientés, graphes valués.
8. Hachage.
9. TAD : chaînes de caractères, piles, files, collection, fichiers
ALGORITHMIQUE - Cours 02 - page
5
/28 - Bertrand LIAUDET
1 - LES ENREGISTREMENTS (TYPE STRUCTURE)
1. Présentation
Un enregistrement (ou type structuré) est un type de donnée permettant d’avoir dans une même variable plusieurs
informations pouvant être de type différent.
On parle d’enregistrement ou de structure.
Usages
Exemple traité
On veut définir un type de donnée correspondant à un élève. Un élève a un nom, un prénom et une note.
Définition du type
struct typEleve
nom : chaîne
prénom : chaîne
note : entier
fin
commentaires
On utilise le mot-clé « struct » pour déclarer le nouveau type.
typEleve est le nom du type créé. Il pourra s’utiliser comme n’importe quel type simple.
« nom », « prénom » et « note » sont trois champs typés.
Déclaration de variables
e1, e2, e3 : typEleve
Utilisation des variables
e1.nom « toto »
e1.prenom « olivier »
e1.note 12
e2.note e1.note // affectation d’un champs
e3 e1 // affectation globale de l’enregistrement
Structures complexes
Exemple traité
On veut définir un type de donnée correspondant à un élève. Un élève a un nom, un prénom. Il a un note par
matière, et il y a plusieurs matières
Définition des types
struct typMatiere
nomMatiere : chaîne
1 / 28 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 !