Liste chainée

Moderator: Mod

Liste chainée

Postby XIRTAM » Sat Dec 01, 2012 12:28 am

Yo les boy's !

Est-ce que quelqu'un parmi vous pourrais m'aider concernant les listes chainée ? :roll:

Je galère un peu à comprendre comment ça marche et surtout comment je peux m'en servir..

J'vous explique,

Je dois recoder ls, et je dois afficher par ordre alphabétique, ASCII plus précisément.

J'ai fait un test d'affichage par ordre dans un fichier a part en utilisant un tableau, mon
affichage fonctionne.

On ma dit d'utiliser les listes chainées, mais donc voilà je ne vois pas du tout comment les utilisées..

Si vous voulez plus de précision dites le moi je ne sais pas si j'ai été très claire !

Moi je retourne chercher ! :(
XIRTAM
Projets
 
Posts: 8
Joined: Fri Nov 09, 2012 10:42 pm

Postby TorTukiTu » Sat Dec 01, 2012 9:30 am

XITRAM, une lsite chainée est une suite de composants qui pointent successivement les uns vers les autres. Typiquement, en C ces composants sont des structures, dans les langages objets, ces composants sont des objets.

Ci dessous une représentation schématique d'une liste chainée:

[img:cdf9d0f3f4]http://img16.imageshack.us/img16/5167/listechainee.png[/img:cdf9d0f3f4]

Le principe est de pouvoir facilement parcourir une liste (une chaine) d'éléments.

L'idée générale, c'est d'avoir entre autre donées, un pointeur qui enchaine vers l'élément suivant. Du coup, tu as juste à suivre tes pointeurs à chaque élément sur lequel tu bosses pour connaitre l'élément suivant et parcourir l'intégralité de la chaîne.

Les puissance des listes chainées est bien visible lorsqu'elles sont conjointement utilisés avec des fonctions récursives.

Par exemple, en imaginant que chacune des structures contient des informations sur un fichier, et que tu cherches à connaitre la taille totale des fichiers JPG, tu peux le faire très facilement:

[code:1:cdf9d0f3f4]

// Fonction qui parcours récursivement toute une liste chainée
fonction int calculTailleJPG(StructureFichier structure){
tailleCalculee = 0
// Si la structure courante représente un fichier JPG
SI( finiEnJPEG(structure->fileName) )
// Alors je récupère la taille de ce fichier
ALORS tailleCalculee = structure->size
// Si la structure courante pointe vers une structure suivante
SI (structure->pstruct NOT NULL)
// Alors j'éxécute cette foncion sur la structure suivante et je récupère le résultat, j'ajoute ce résultat à la taille que j'ai déjà récupéré
ALORS tailleCalculee = tailleCalculee + calculTailleJPG( structure->pstruct )
// Je renvoie la taille que j'ai calculé
return tailleCalculee
}

structure_initiale = {structureinstance}

tailleTotaleJPG = calculTailleJPG(structure_initiale)

[/code:1:cdf9d0f3f4]

Tortue 974.
User avatar
TorTukiTu
Site Admin
 
Posts: 1960
Joined: Thu Feb 07, 2008 10:24 pm
Location: Devant son pc durant la redaction de ce message

Liste chainée

Postby XIRTAM » Sat Dec 01, 2012 6:08 pm

Merci TorTukiTu !

mais j'ai abandonner les listes chainées poru l'instant je suis passer a un autre projet parce que j'aurais pas le temps.. mais j'y reviendrais plus tard surement et je reviendrais psoter ici si j'ai d'autres questions !
XIRTAM
Projets
 
Posts: 8
Joined: Fri Nov 09, 2012 10:42 pm


Return to C/C++

Who is online

Users browsing this forum: No registered users and 2 guests

cron