Les Listes
I. Introduction :
1. une Liste est une classe d'objet ( type de donnée abstrait ) possédant les
comportements suivant :
Insertion.
Suppression.
Exploration.
Recherche.
2. Implémentation de liste :
Avantages Inconvénients Utilisations
Avec un
Tableau
Tri facile
Exploration simple
accès rapide à un élément
Insertion compliquée
Suppression compliquée
Taille définie
Gaspillage de mémoire
Bdd
Conversion
Avec une
Liste
simple de
références
(ou de
pointeurs
en C)
Insertion en tête facile
Suppression facile
Parcours simple
Taille indéfinie
Economie de mémoire
( pas de trous, pas de
réservation de mémoire fixe
)
Tri difficile
Exploration possible dans
un seul sens
temps de recherche
Programmation système
( liste de processus,
management de mémoire)
Avec une
liste de
double de
références
Exploration dans deux sens
donc certaines opérations
sont plus rapides
Compléxité
3. Avec C# : les classes permettant d'implémenter des listes sont
rassemblés sous le termes de collection.
Par exemple : l'exploration de la liste se fait comme pour un tableau en utilisant
« foreach »
(c) F.Minon 2008
II. Implémentation par une Liste de références ( ou de pointeur) :
1. Principes : Chaque éléments d'une liste contient une référence à l'élément
suivant de la liste. Le premier élément de la liste est référencé par une tête
de liste ( Head). Le dernier élément contient une référence sur le suivant
égale à null.
Un élément de la liste
2. Opérations fondamentales :
a) Algorithme d'insertion en tête de liste :
b) Algorithmes d'exploration :
c) Algorithme de recherche :
d) Algorithmes de suppression :
En début de liste.
Connaissant la référence de l'élément.
(c) F.Minon 2008
Donné
e
Référence de
l'élément
suivant
Têt
e
Donné
e
Suivan
t
Donné
e
Suivan
t
Donné
e
null
2. Exemple de description d'une liste de référence et algorithme des
opérations :
classe Elément
attributs privés :
Donnée : TypeDeDonnées
ElémentSuivant : référence sur un Elément
Méthodes publiques :
Elément( données : TypeDeDonnées, référenceElément : référence sur un
Elément); // constructeur
FinClasse
classe ListeRéférence
attributs privés :
Tête : référence sur un Elément
Méthodes publiques :
ListeRéférence() // constructeur
début
Tête <- null; // liste vide
fin
fonction InsertionDebut( données : TypeDeDonnées) : rien
début
si Tête = null alors Tête <- nouveau Elément( données, null);
sinon Tête <- nouveau Elément( données, Tete);
fin
... à vous d'écrire la suite :
Suppression d'un élément en tête de liste : càd du premier élément.
Parcours de liste.
Suppression du nième élément de la liste.
(c) F.Minon 2008
3. Implémentation en C# :
a) Implémenter une liste de chaînes de caractères et écrire un petit
programme de test en mode « console ».
b) TP4 répertoire avec liste
classe RepertoireListe dérivée de Repertoire.
4. Exercice :
a) Concevoir l'algorithme de la méthode qui insère des mots dans l'ordre
alphabétique dans la liste du 3).
b) Implémenter en C# et imaginer un petit programme de test.
c) En déduire un algorithme de tri d'une suite de mots.
(c) F.Minon 2008
II. Listes doublement chaînées :
1. Principes : Chaque élément d'une liste contient une référence à l'élément
suivant de la liste et à l'élément précédent. Le premier élément de la liste est
référencé par une tête de liste ( Head), le dernier par une queue de liste
( End).
Le dernier élément contient une référence sur le suivant égale à null.
Le premier élément contient une référence sur le précédent égale à null.
2. Opérations fondamentales :
a) Algorithme d'insertion en tête de liste :
b) Algorithmes d'exploration :
c) Algorithme de recherche :
d) Algorithmes de suppression :
En début de liste.
Connaissant la référence de l'élément.
(c) F.Minon 2008
Tête
Précédent=nul
l
Suivan
t
Précéden
t
Donné
e
Donné
e
Donné
e
Précéden
t
Suivant=nul
l
Suivan
t
Queue
1 / 8 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 !