Discussion:Structures de données en C/Les listes simples

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

liste versus listref[modifier le wikicode]

l'implementation donne est plus un cas de liste de reference qu'un cas de liste.

Les listes de refeference ont deux interets majeurs: de metter sous forme de liste une collection pre-existante n'ayant pas ete concu comme une liste, ou d'avoir les meme elements partages entre plusieurs listes

Le probleme dans cette implementation c'est l'absence totale de gestion de la memoire. Notament les fonctions de free qui detruisent la reference sans se soucier de faire des leak sur les data.

La gestion de ces problemes n'est pas completement triviale est peut-etre sort du cadre de cet article (encore que) Il semblerait donc plus judicieux d'implementer une liste simple ou les data des element sont 'inline' et de taille fixe (n'ayant bien sur pas eux meme de dependance dynamique).

Il serait utile egalement, pour pouvoir offrir une implemetation fonctionnelle souple de distinguer un object liste des object listeitem. Cela permet d'implementer de facon efficasse listeCountItem() listeAppend listePrepend() listeInsertSorted() listeSort() listeMerge() etc.. Un object lsite comprend un pointeur sur la tete, sue la queue, un compteur et different pointeur de fonction pour evenetuellement gerer la creation, destruction, clonage, affichage, et comparaison des elements de la liste ce qui permet de gerer des elements de liste de complexite quelqconque. C'est une bonne occassion de montrer que l'on peux faire du polymorphisme en C