Liste doublement chainée

Fermé
SlimJ - 17 août 2015 à 05:00
 SlimJ - 17 août 2015 à 10:48
Bonjour,

salut,

soit la representation suivante :

struct noeud 
{
struct noeud *suivant;
struct noeud *precedent;
char info;
};


struct liste
{
struct noeud *téte;
struct noeud *queue;
}


si maintenant on fait la declaration suivante

struct liste * maliste



pouvez vous m'aider a comprendre on me donnant une figure ou qqe chose qui m'explique cette reprsentation en mémoire ?

merci bcp



2 réponses

jackdada Messages postés 76 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 10 février 2016 19
17 août 2015 à 05:48
Bonjour,
Les liste chainé son un moyen de stocker en mémoire plusieurs éléments de même type qui vont être relié entre eux sous forme de chaine grâce à leur adresse. Tu as du normalement déjà voir comment sont stocker en mémoire les variable. Comparé à un tableau, l'avantage de la liste est qu'elle n'a pas de taille fixe, quand je veux ajouter un élément, j'ai juste à casser la chaine à l'endroit ou je veux le placer et l'accrocher à l'élément précédent et l'élément suivant. De même pour en supprimer un, je le retire et raccroche ma chaine ensuite.
regarde cette image elle pourras t'aider à comprendre https://chgi.developpez.com/dblist/liste.gif
Les liste chainé (double ou simple, le principe est toujours le même) fonctionne à partir de structure et la gestion de la mémoire ne se fait pas toute seul comme pour un type "classique" (char, int...) c'est à toi de réserver l'espace mémoire et de le libérer quand tu n'en veux plus.

La structure noeud permettra de définir tes maillon de la liste chainé. Cette structure contient ce que tu veux stocker dedans ici la variable info qui est de type char, mais tu peux très bien y stocker d'autre variable. Elle contient ensuite un pointeur sur le maillons suivant ainsi qu'un pointeur sur le maillons précédent si la liste est doublement chainé

la structure liste est la pour stocker l'adresse pointant vers la tête de ta liste et l'adresse pointant vers la queue de liste.

Je te conseil d'aller jetez un coups d'oeil sur open classroom le chapitre sur les liste est bien expliqué. https://openclassrooms.com/courses/les-listes-chainees-2
0
merci pour la réponse
0
bonjour, meric pour la réponse.
alors si j'ai bine compris est ce que je peux imaginer la représentation mémoire comme ca ?:

http://www.hostingpics.net/viewer.php?id=401820essaie2.png

merci.
0