salut c'est encore moi ! j'ai essayé de coder une fonction qui insere un element dans une liste chainée suivant son indice,j'ai utilisé un passage par adresse mais ça n'a pas marché ,j'ai alors essayé un passage par valeur mais j'ai eu le meme probleme.
Svp est ce que vous pouvez m'exlpiquer mes erreurs pour que je les corriges.
merci
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 //passage par adresse void inserer(cellule **l,type elmt,int index) { int i=0; cellule *nv=NULL,*p=NULL; nv=malloc(sizeof(cellule)); if (listeestvide(*l)|| index<0) // listeestvide retourne 1 elle est vide sinon -1 { exit(EXIT_FAILURE); } p=*l; while(p!=NULL && i!=index) { i++; p=p->suiv; } if (i==index) { nv->suiv=p->suiv; p->suiv=nv; nv->data=elmt; } } //passage par valeur cellule* inserer(cellule *l,type elmt,int index) { int i=0; cellule *nv=NULL,*p=NULL; nv=malloc(sizeof(cellule)); if (listeestvide(l)|| index<0) // listeestvide retourne 1 elle est vide sinon -1 { return NULL; } p=l; while(p!=NULL && i!=index) { i++; p=p->suiv; } if (i==index) { nv->suiv=p->suiv; p->suiv=nv; nv->data=elmt; } return l; }
Partager