Bonsoir tous ,
voici la file :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ??