Les Listes

publicité
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 :
Avec un
Tableau
Avantages
Inconvénients
Utilisations
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
Insertion en tête facile
Tri difficile
Liste
Suppression facile
Exploration possible dans
simple de
Parcours simple
un seul sens
références
Taille indéfinie
temps de recherche
(ou de
Economie de mémoire
pointeurs
( pas de trous, pas de
en C)
réservation de mémoire fixe
)
Avec une Exploration dans deux sens
liste de
donc certaines opérations
double de
sont plus rapides
références
Programmation système
( liste de processus,
management de mémoire)
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.
Donné Référence de
e
l'élément
suivant
Un élément de la liste
Têt
e
Donné Suivan
e
t
Donné Suivan
e
t
Donné
e
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
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.
Tête
Donné Précédent=nul
e
l
Suivan
t
Donné Précéden
e
t
Suivan
t
Donné Précéden
e
t
Suivant=nul
l
Queue
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
2. Exemple de description d'une liste de référence et algorithme des
opérations :
(c) F.Minon 2008
II. Classes C# utilisable pour gérer des listes ( collections ):
1. Interface Ilist : elle déclare les principales opérations vu en I)
2. List<T> : classe du framework qui permet d'implémenter une liste d'objet
de type T.
NB 1 : remarquer la syntaxe pour une classe travaillant sur un type de donnée
générique. List <T> s'appelle un patron, un template ou un pattern.
NB 2 : utilise un tableau d'objet .
NB 3 : un élément de la liste s'appelle un « item ».
3. LinkedList<T> : liste liée comme en II), liste de références.
NB 1 : utilise une liste de références.
(c) F.Minon 2008
III.Utilisation des collections Listes :
1. Composants window : ListBox. Voir exemple.
2. Récupération de données à partir de requêtes SQL.
On peut classer les requêtes en deux catégories :
•
celles qui ne demandent pas de données
•
celles qui demandent des données ( interrogation ).
Démarche :
a. Sans demande de donnée :
•
•
•
•
Connexion à la bdd.
Ouverture de la connexion.
Création et Initialisation de la commande avec une
demande.
Exécution de la commande.
Fermeture de la connexion.
b. Avec demande de données :
•
•
•
•
•
•
3. ...
(c) F.Minon 2008
Connexion à la bdd.
Ouverture de la connexion.
Création et Initialisation de la commande avec une
demande.
Exécution de la commande avec retour de données dans une
collection ( ou un tableau).
Fermeture de la connexion.
Récupérer les données dans la collection ( tableau ) renvoyé.
Téléchargement