Les pointeurs: Forme en "Anneaux"

Statut
N'est pas ouverte pour d'autres réponses.

k o D

Elite
Voilà je suis à la recherche d'un maximum d'informations sur la structure "en anneaux" des pointeurs...

Si vous pouviez me donner plus d'explication et éventuellement un bon site.

Merci d'avance :wink:

Ps: appelée aussi liste circulaires doublement chainées.
 
T

theodorus

ex membre
Moi aussi ça m'intéresserait, car je n'ai jamais trouvé de doc sur les listes circulaires en particulier.
 

moustic

Touriste
Si tu connais la listes chainée classique qui se termine par null, la liste circulaire c'est tout bêtement le pointeur du dernier qui à la place d'être null, tu y place l'adresse du pointeur de tète.

Sans oublier quand même de prévoir un pointeur de fin sur le dernier élément pour pas boucler infiniment
 
T

theodorus

ex membre
Ben ça on s'en doutait ptêt un ptit peu, hein ;)
Mais est-ce que il y a des algorithmes spéciaux propres aux listes circulaires? Des trucs qu'on ne peut pas faire avec des listes "normales"?
 

moustic

Touriste
Ben faut voir quand on veux faire quelque chose ce qui est le mieux les listes circulaires c'est bien si tu doit parcourir plusieurs fois ta liste.

Attention listes doublements chainées ça veux dire que dans ta structure, tu à 2 pointeurs, 1 qui pointe sur l'élément suivant et 1 sur l'élément précédent, ce qui permet de parcourir la liste dans les 2 sens. Une liste doublement chainée n'est pas necessairement circulaire, tu peux avoir un pointeur au début = null et un pointeur à la fin = null
 
T

theodorus

ex membre
Mais je peux parcourir ma liste plusieurs fois sans qu'elle soit circulaire puisque de toutes façons j'ai la tête quelque part en permanence (enfin y a intérêt :) ). En plus dans la liste circulaire si je veux me situer, je dois reconnaître la tête, donc il faut faire un test à chaque itération quand je parcours la boucle, alors que les listes linéaires non... Où est l'avantage?
 
1er
OP
k o D

k o D

Elite
J'ai trouvé les schémas:







Je ne pense pas que l'on pourra mieux me répondre que celà sauf en me fesant le codeen pascal lui même lol

Donc merci beaucoup :wink:
 

Smart

Touriste
L'avantage des anneaux c'est que lorsque tu veux enregistrer tes données et supprimer les plus anciennes, il suffit de les enregistrer sur ce qui est pointé par le pointeur "suivant".
C'est beaucoup utilisé dans les machines comme les scanner par exemple, ou les oscilloscopes (des trucs qui affichent des données sur une période, de 30 secondes par exemple, ca garde en mémoire que les 30 dernieres secondes et ca enregistre en boucle).
 
1er
OP
k o D

k o D

Elite
Ouep ok

Enfin là de toute manière l'utilité je m'en fou pour le moment, c'est vraiment juste le codage. :D
 
T

theodorus

ex membre
Smart a dit:
L'avantage des anneaux c'est que lorsque tu veux enregistrer tes données et supprimer les plus anciennes, il suffit de les enregistrer sur ce qui est pointé par le pointeur "suivant".
C'est beaucoup utilisé dans les machines comme les scanner par exemple, ou les oscilloscopes (des trucs qui affichent des données sur une période, de 30 secondes par exemple, ca garde en mémoire que les 30 dernieres secondes et ca enregistre en boucle).
J'y avais jamais pensé, merci. (Moi qui n'utilisait que des piles pour ça... LoL)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut