comment on peut savoir le premier élément et le dernier élément d'une liste chainé
Version imprimable
comment on peut savoir le premier élément et le dernier élément d'une liste chainé
salut
comment te représentes-tu une liste chainée ??
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 void add(Digi_struct **L, char NAME ,char TYPE,int ID){ Digi_struct *tmp = *L; Digi_struct *new = (Digi_struct*)malloc(sizeof(Digi_struct)); new->NAME = NAME; new->TYPE = TYPE; new->ID = ID; if(empty(*L)){ *L = new; (*L)->prev = NULL; } else{ tmp = *L; while(tmp->next != NULL){ tmp = tmp->next; } end_digi = new ; new->prev = tmp ; tmp->next = new; new->next = start_digi; } } void InitListe(Digi_struct **L){ if(!empty(*L)){ InitListe(&((*L)->next)); *L = NULL; start_digi= *L ; (*L)->prev=end_digi; } }
Quelques questions et remarques :
end_digi et start_digi sont des globales ? Les globales sont à supprimer!
Ta liste est sous la forme d'un anneau ?Code:new->next = start_digi;
*L est NULL (*L)->prev va planter!Code:
1
2
3
4
5 void InitListe(Digi_struct **L){ ... *L = NULL; start_digi= *L ; (*L)->prev=end_digi;
NAME est un seul caractère ?Code:void add(Digi_struct **L, char NAME ,char TYPE,int ID){