INFO505 Programmation C
Loading...
Searching...
No Matches
Liste.c
1// Liste.c
2#include <stdlib.h>
3#include "Liste.h"
4
5Liste* Liste_creer()
6{
7 Liste* L = (Liste*) malloc( sizeof( Liste ) );
8 Liste_init( L );
9 return L;
10}
11
12void Liste_init( Liste* L )
13{
14 L->succ = L;
15 L->pred = L;
16}
17
18void Liste_termine( Liste* L )
19{
20 while ( Liste_debut( L ) != Liste_fin( L ) )
21 Liste_supprime( L, Liste_debut( L ) );
22}
23
24void Liste_detruire( Liste* L )
25{
26 Liste_termine( L );
27}
28
29Adr Liste_debut( Liste* L )
30{
31 return L->succ;
32}
33
34Adr Liste_fin( Liste* L )
35{
36 return L;
37}
38
39Adr Liste_suivant( Liste* L, Adr A )
40{
41 return A->succ;
42}
43
44Adr Liste_precedent( Liste* L, Adr A )
45{
46 return A->pred;
47}
48
49Adr Liste_insere( Liste* L, Adr A, Elem v )
50{
51 Adr ncell = (Adr) malloc( sizeof( Cellule ) );
52 ncell->val = v;
53 ncell->succ = A;
54 return ncell;
55}
56
57void Liste_supprime( Liste* L, Adr A )
58{
59 A->pred->succ = A->succ;
60 A->succ->pred = A->pred;
61}
62
63Elem Liste_valeur( Liste* L, Adr A )
64{
65 return A->val;
66}
67
68void Liste_modifie( Liste* L, Adr A, Elem v )
69{
70 A->val = v;
71}
Definit le noeud d'une liste doublement chaînée.
Definition Liste.h:7
struct SCellule * pred
pointeur vers le noeud précédent
Definition Liste.h:9
struct SCellule * succ
pointeur vers le noeud suivant
Definition Liste.h:10
Elem val
valeur stockée dans le noeud
Definition Liste.h:8