LISTE DOUBLEMENT CHAINÉE D'ENTIERS

NettoyeurFantome Messages postés 35 Date d'inscription samedi 25 mai 2002 Statut Membre Dernière intervention 10 mai 2003 - 10 mai 2003 à 22:33
cs_psycho Messages postés 232 Date d'inscription samedi 11 mai 2002 Statut Membre Dernière intervention 27 octobre 2007 - 17 août 2004 à 00:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10742-liste-doublement-chainee-d-entiers

cs_psycho Messages postés 232 Date d'inscription samedi 11 mai 2002 Statut Membre Dernière intervention 27 octobre 2007
17 août 2004 à 00:00
hello

juste a titre d informations, il manque la liberation memoire des elements que tu alloues dynamiquement
la c pas trop grave, mais sur des grosses listes, ou des listes comportant des tableaux, ca devient tout de suite ennuyeux...
Je te suggere de faire une methode de supression de liste(bon, meme si il y a la methode de suppression de maillon double, c pas une raison)

voila

@+
HeilongJiang Messages postés 3 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 23 mai 2003
17 avril 2004 à 06:17
Merci de ton commentaire, mais si on veut rester sur le C (pur et dur)
On peut aussi faire comme ceci pour eviter de créer un type chaque fois
que l'on en a besoin.

#define TDA_IMPLEMENTATION(type, taille) { type base[taille]; type *suivant; }

#define TDA_DEFTYPE(type, nom, taille) struct nom TDA_IMPLEMENTATION(type, taille); typedef struct nom nom

#define TDA_DECLARER(type, nom, taille) struct TDA_IMPLEMENTATION(type, taille) nom

ainsi, on peut donc donc déclarer, soit un liste, une file ou une pile de type souhaité.

TDA_DEFTYPE(int, pile, 1024);
TDA_DEFTYPE(int, liste, 1024);

pile pile;
liste liste;
TDA_DECLARER(int, pile_temporaire, 5);
TDA_DECLARER(char, liste_temp, 32);

@ bientôt.
NettoyeurFantome Messages postés 35 Date d'inscription samedi 25 mai 2002 Statut Membre Dernière intervention 10 mai 2003
10 mai 2003 à 22:33
Tu sais qu'en C++, il y a des classes que l'on appelle template et qui permettent de faire de la programmation générique :

tu déclares une classe :

template<class T>
class List
{
Tu écris à l'intérieur ce que tu as écris (en modifiant bien sûr) et tu remplaces int par T comme ça :
};

list listeEntier;
list<char> listeChar;
etc.

@+ !
Rejoignez-nous