Ajouter en tête d'un anneau

cs_falisse Messages postés 1 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 12 mars 2008 - 12 mars 2008 à 19:19
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 12 mars 2008 à 22:10
J'ai un problème avec mon ajouter en tête pour un anneau, voici le code :

void ajouter (int valeur, T_liste *anneau)
{
   T_liste tempo;
   if((*anneau)!=NULL)
                        {
                         tempo=(*anneau);
                        (*anneau)=(T_liste)malloc(sizeof(T_maillon));
                        (*anneau)->info=valeur;
                        (*anneau)->suivant=tempo;
                        }
    else {
         (*anneau)=(T_liste)malloc(sizeof(T_maillon));
         (*anneau)->info=valeur;
         (*anneau)->suivant= (*anneau);
         }
}

Et les typedef sont:

typedef struct maillon T_maillon;
typedef T_maillon * T_liste;

struct maillon
{
 int info;
 T_liste suivant;     
};

En faite je remarque que le dernier terme renvoie sans cesse sur lui même apperement.

1 réponse

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
12 mars 2008 à 22:10
Quel est ton problème? Tu veux que ton dernier élément pointe sur le premier? Dans ce cas :

après (*anneau)->suivant=tempo;

for(T_liste debut=*anneau;tempo->suivant!=debut;tempo=tempo->suivant);
tempo->suivant=*anneau;
0
Rejoignez-nous