Liste chainé en c

Fermé
Utilisateur anonyme - 27 mars 2006 à 17:42
mamiemando Messages postés 33432 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 décembre 2024 - 28 mars 2006 à 09:50
je voudrai savoir la declaration du liste chainé par un maillon en c
merci
A voir également:

1 réponse

mamiemando Messages postés 33432 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 décembre 2024 7 809
28 mars 2006 à 09:50
Il faut impérativement décrire un maillon de la liste. Ici pour stocker l'info je mets un pointeur void *, mais si tu ne stockes qu'une liste chainée d'entier, c'est plus simple de stocker directement un entier plutôt qu'une adresse.
struct maillon{
   struct maillon * next;
   void * data:
};

Ensuite il est pratique d'avoir une structure qui va permettre de gérer facilement ta liste chaînée, même si on peut s'en passer :
struct list{
   struct maillon * begin;
   struct maillon * end;
};

Cette dernière structure permettra de rajouter un maillon en fin de liste immédiatement (O(1)) plutôt que de parcourir toute la liste (O(n)). A noter qu'en C++ il existe une classe template de liste chainée (class list), une de liste triée (class multiset), et une de liste triée à éléments unique (class set).

Bonne chance
0