De quossser sa une liste lier

Messages postés
45
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
16 septembre 2004
-
Messages postés
45
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
16 septembre 2004
-
ouais j'ai un ti bouquin pour apprendre de C++
mais la chui rendu au chapitre qui traite des liste lier mais
C QUOI SA de quosser que sa manger en hiver ste cossin la
si qqun peux maider ecriver moi ;)

4 réponses

Messages postés
19
Date d'inscription
samedi 20 octobre 2001
Statut
Membre
Dernière intervention
2 avril 2004

lol g du mal a capté ce ke tu dis ms tu veux surement dire liste chaînée.
Ben en gros une liste chaînée ( j'espère que tu as déjà appris les pointeur sinon ba ... apprends-les avant lol ) c un espece de tableau dynamique.

Par ex tu ve tt connement faire une liste d'entiers, tu crées une structure com ça par ex :

struct Item
{
int val;
Item* pNext;

Item(int num)
{
val = num;
pNext = NULL;
}
}

Cette structure contient l'entier lui-même ( val ) et un pointeur vers la dite structure ( pNext ).
Ce pointeur pointe vers l'élément suivant de la liste, si il est égal à NULL il ne pointe donc vers aucun élément, c la fin de la liste ( c pr ça qu'il fo l'initialiser à NULL absoluement ).

pr créer les éléments :

// Création du premier élément de la liste ( départ de la liste chaînée )

Item* pList = new Item(3);

// Création des autres éléments de la liste

Item* p = pList;
while(p->Next != NULL)
p = p->Next;

p = new Item(<val>);

pr accèder au 3e élément par ex :

Item* p = pList;
for(int i = 0; i < 2; i++)
p = p->Next;

cout << p->val;
Messages postés
45
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
16 septembre 2004

ok cool merci
mais c sa sert a quoi d'apprendre sa ????
Messages postés
19
Date d'inscription
samedi 20 octobre 2001
Statut
Membre
Dernière intervention
2 avril 2004

Ba c tres pratique si tu ve stocker dynamiquement des éléments. Avec une liste chainée tu peux facilement et rapidement ajouter, déplacer, modifier ou suppprimer des éléments. Sur 10000 éléments par ex si tu veux ajouter un 10001 eme élément, avec la liste chainée c instantanné, avec un tableau normal, la seule solution et de créer un tableau temporaire ou stocker les 10000 éléments, supprimer le tableau actuel, le recréer avec une taille de 10001, le reremplir à partir du tabeau temporaire puis enfin ajouter le 10001 eme élément ( heu 1 pe galere nan et surtt TRES lent ).

Parce k'en fait pr rentrer ds le détail un tableau normal est presque une liste chainée, qd tu crée un tableau tu as le pointeur vers le 1er élément de ce tabeau, ts les éléments suivants sont stockés les uns à la suite des autres en mémoire dc pr acceder à un élément d'un tableau tu peux tres bien faire
*(pArray plus ind)
( le signe plus s'affiche pas sur ce forum :-p ).Dc si tu veux ajouter un 10001 eme élément à ce tableau, tu vas me dire on a ka faire
*(pArray plus 10000) = new machin
. Et moa je te dirai peut etre lol, jusqu'au moment ou tu vas rencontrer un emplacement déjà occupé, et là grosse couille.
Alors ke la liste chainée, au lieu d'être à la suite, les éléments sont dispachés un peu partt ds la mémoire, ms sont reliés entre eux par les pointeurs.
Encore un avantage, ya pas de taille limite aux listes chainées :)
Voila :-)
Messages postés
45
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
16 septembre 2004

OOOOOOKKKKK don ben cool sa ;) c vraiment utile merci