Problème avec une file doublement chainée
Bonsoir tous ,
voici la file :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
struct noeud
{
int cle;
struct noeud *suivant;
struct noeud *precedant;
} *debut,*z;
void initListe()
{
z = malloc(sizeof(struct noeud));
debut = malloc(sizeof(struct noeud));
z->suivant = z;
z->precedant = debut;
debut->suivant = z;
debut->precedant = debut;
}
int supprimerAvantZ()
{
int cle = z->precedant->cle;
z->precedant = z->precedant->precedant;
z->precedant->suivant = z;
return cle;
}
struct noeud* insererApres(int element,struct noeud *t)
{
struct noeud *x = malloc(sizeof(struct noeud));
x->cle = element;
x->precedant = t;
x->suivant = t->suivant;
t->suivant = x;
x->suivant->precedant = x;
return x;
} |
ps: je n'ai pas mis les procédures que je n'utilise pas pour le môment
Et voici main :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
int main()
{
struct noeud *un,*deux,*trois,*quatre;
initListe();
un = insererApres(1,debut);
deux = insererApres(2,debut);
trois = insererApres(3,debut);
quatre = insererApres(4,debut);
printListe();
insererApres(supprimerAvantZ(),debut);
printListe();
return 0;
} |
Voici maintenant ce que je veux :
4 3 2 1
1 4 3 2
Enfin voila ce que je recois :
4 3 2 1
1
Je ne vois pas où est le problème ??