Académique Documents
Professionnel Documents
Culture Documents
2
QU’EST-CE QU’UNE LISTE DOUBLEMENT CHAÎNÉE?
Une liste doublement chainée est une collection d’élément de même type
3
QU’EST-CE QU’UNE LISTE DOUBLEMENT CHAÎNÉE?
Une liste doublement chainée est une collection d’élément de même type
4
QU’EST-CE QU’UNE LISTE DOUBLEMENT CHAÎNÉE?
Une liste doublement chainée est une collection d’élément de même type
On peut parcourir la liste dans les deux sens (on peut donc revenir à l’ariere.
5
QU’EST-CE QU’UNE LISTE DOUBLEMENT CHAÎNÉE?
Une liste doublement chainée est une collection d’élément de même type
On peut parcourir la liste dans les deux sens (on peut donc revenir à l’ariere.
6
QU’EST-CE QU’UNE LISTE DOUBLEMENT CHAÎNÉE?
Une liste doublement chainée est une collection d’élément de même type
On peut parcourir la liste dans les deux sens (on peut donc revenir à l’ariere.
7
QU’EST-CE QU’UNE LISTE DOUBLEMENT CHAÎNÉE?
Une liste doublement chainée est une collection d’élément de même type
On peut parcourir la liste dans les deux sens (on peut donc revenir à l’ariere.
8
ELEMENT D’UNE LISTE DOUBLEMENT CHAÎNÉE
Contenue
@2050
9
ELEMENT D’UNE LISTE DOUBLEMENT CHAÎNÉE
Contenue
@suivannt
@precedent
@2050
10
EXEMPLE
LD
5 10 7 8 12
c c c c c
11
EXEMPLE
LD
5 10 7 8 12
@2140
c c c c c
12
EXEMPLE
LD
5 10 7 8 12
@2140
c c c c c
NULL
13
EXEMPLE
LD
5 10 7 8 12
@2140 @2102
c c c c c
NULL
14
EXEMPLE
LD
5 10 7 8 12
@2140 @2102
c c c c c
NULL @2050
15
EXEMPLE
LD
5 10 7 8 12
NULL @2050
16
EXEMPLE
LD
5 10 7 8 12
17
EXEMPLE
LD
5 10 7 8 12
18
EXEMPLE
LD
5 10 7 8 12
19
EXEMPLE
LD
5 10 7 8 12
20
EXEMPLE
LD
5 10 7 8 12
21
DÉFINIR L’ÉLÉMENT
A la différence des listes simplement chainées, un élément d’une liste doublement chinées doit pointé sur son
suivant Et son précédent. Ce type structuré représente un élément composé de
22
DÉFINIR L’ÉLÉMENT
A la différence des listes simplement chainées, un élément d’une liste doublement chinées doit pointé sur son
suivant Et son précédent. Ce type structuré représente un élément composé de
23
DÉFINIR L’ÉLÉMENT
A la différence des listes simplement chainées, un élément d’une liste doublement chinées doit pointé sur son
suivant Et son précédent. Ce type structuré représente un élément composé de
24
DÉFINIR L’ÉLÉMENT
A la différence des listes simplement chainées, un élément d’une liste doublement chinées doit pointé sur son
suivant Et son précédent. Ce type structuré représente un élément composé de
25
DÉFINIR L’ÉLÉMENT
A la différence des listes simplement chainées, un élément d’une liste doublement chinées doit pointé sur son
suivant Et son précédent. Ce type structuré représente un élément composé de
}Element;
26
TROUVER LA FIN
27
TROUVER LA FIN
LD
5 10 7 8 12
28
TROUVER LA FIN
p
LD
5 10 7 8 12
29
TROUVER LA FIN
p
LD
5 10 7 8 12
30
TROUVER LA FIN
p
LD
5 10 7 8 12
31
TROUVER LA FIN
p
LD
5 10 7 8 12
32
TROUVER LA FIN
p
LD
5 10 7 8 12
33
TROUVER LA FIN
Code
return fin;
}
34
AFFICHAGE A PARTIR DU DÉBUT
35
AFFICHAGE A PARTIR DU DÉBUT
p
LD
5 10 7 8 12
36
AFFICHAGE A PARTIR DU DÉBUT
p
LD
5 10 7 8 12
37
AFFICHAGE A PARTIR DU DÉBUT
Code
38
AFFICHAGE A PARTIR DE LA FIN
39
AFFICHAGE A PARTIR DE LA FIN
p
LD
5 10 7 8 12
40
AFFICHAGE A PARTIR DE LA FIN
p
LD
5 10 7 8 12
41
AFFICHAGE A PARTIR DE LA FIN
Code
int main()
{
Element *LD=NULL;
Element *nouveau;
Element *finLD;
int val=1;
nouveau=CreateElement(val);
InsertDebutLD(&LD,nouveau);
val=2;
nouveau=CreateElement(val);
InsertDebutLD(&LD,nouveau);
AfficherListeDuPremierAuDebut(LD);
finLD=TrouverFin(LD);
AfficherListeDuDernierAuPremier(finLD);
return 0;
}
43
CREATION D’UN ÉLÉMENT
Contenue
@suivannt
@precedent
@2050
44
CREATION D’UN ÉLÉMENT
Code
45
INSERTION D’UN NOUVEAU ÉLÉMENT AU DÉBUT DE LA LISTE
LD
5 10 7 8 12
@2140
c @2102
c @216
c @300
c NULL
c
@2050 @2140 @2102 @216
NULL
46
INSERTION D’UN NOUVEAU ÉLÉMENT AU DÉBUT DE LA LISTE
nouveau
LD
4 5 10 7 8 12
c @2140
c @2102
c @216
c @300
c NULL
c
@2050 @2140 @2102 @216
NULL
47
INSERTION D’UN NOUVEAU ÉLÉMENT AU DÉBUT DE LA LISTE
nouveau
LD
4 5 10 7 8 12
@2050
c @2140 @2102 @216 @300 NULL
c
c c c c
@2050 @2140 @2102 @216
NULL
48
INSERTION D’UN NOUVEAU ÉLÉMENT AU DÉBUT DE LA LISTE
nouveau
LD
4 5 10 7 8 12
@2050
c @2140 @2102 @216 @300 NULL
c
c c c c
NULL @2050 @2140 @2102 @216
49
INSERTION D’UN NOUVEAU ÉLÉMENT AU DÉBUT DE LA LISTE
nouveau
LD
4 5 10 7 8 12
@2050
c @2140 @2102 @216 @300 NULL
c
c c c c
NULL @400 @2050 @2140 @2102 @216
50
INSERTION D’UN NOUVEAU ÉLÉMENT AU DÉBUT DE LA LISTE
LD
nouveau
4 5 10 7 8 12
@2050
c @2140 @2102 @216 @300 NULL
c
c c c c
NULL @400 @2050 @2140 @2102 @216
51
INSERTION D’UN NOUVEAU ÉLÉMENT AU DÉBUT DE LA LISTE
Code version 1 (fonction)
52
INSERTION D’UN NOUVEAU ÉLÉMENT AU DÉBUT DE LA LISTE
Code version 2 (procédure)
(*LD)->precedent=nouveau;
*LD=nouveau;
53
INSERTION D’UN NOUVEAU ÉLÉMENT AU DÉBUT DE LA LISTE
Résultat main()
int main()
{
Element *LD=NULL;
Element *nouveau;
int val=1;
nouveau=CreateElement(val);
InsertDebutLD(&LD,nouveau);
val=2;
nouveau=CreateElement(val);
InsertDebutLD(&LD,nouveau);
val=3;
nouveau=CreateElement(val);
InsertDebutLD(&LD,nouveau);
val=4;
nouveau=CreateElement(val);
InsertDebutLD(&LD,nouveau);
AfficherListeDuPremierAuDebut(LD);
return 0;
}
54
INSERTION D’UN NOUVEAU ÉLÉMENT A LA FIN DE LA LISTE
LD
5 10 7 8 12
@2140
c @2102
c @216
c @300
c NULL
c
@2050 @2140 @2102 @216
NULL
55
INSERTION D’UN NOUVEAU ÉLÉMENT A LA FIN DE LA LISTE
LD nouveau
5 10 7 8 12 4
@2140
c @2102
c @216
c @300
c NULL
c NULL
c
@2050 @2140 @2102 @216
NULL
56
INSERTION D’UN NOUVEAU ÉLÉMENT A LA FIN DE LA LISTE
dernier
LD nouveau
5 10 7 8 12 4
@2140
c @2102
c @216
c @300
c NULL
c NULL
c
@2050 @2140 @2102 @216
NULL
57
INSERTION D’UN NOUVEAU ÉLÉMENT A LA FIN DE LA LISTE
TrouverFin(); dernier
LD nouveau
5 10 7 8 12 4
@2140
c @2102
c @216
c @300
c NULL
c NULL
c
@2050 @2140 @2102 @216
NULL
58
INSERTION D’UN NOUVEAU ÉLÉMENT A LA FIN DE LA LISTE
dernier
LD nouveau
5 10 7 8 12 4
@2140
c @2102
c @216
c @300
c @400
c NULL
c
@2050 @2140 @2102 @216
NULL
59
INSERTION D’UN NOUVEAU ÉLÉMENT A LA FIN DE LA LISTE
dernier
LD nouveau
5 10 7 8 12 4
@2140
c @2102
c @216
c @300
c @400
c NULL
c
@2050 @2140 @2102 @216
NULL @300
60
INSERTION D’UN NOUVEAU ÉLÉMENT A LA FIN DE LA LISTE
Code version 1 (procédure)
61
INSERTION D’UN NOUVEAU ÉLÉMENT A LA FIN DE LA LISTE
Code version 2 (fonction)
62