Add TP5 skeleton
[Algorithmic_C.git] / TP5 / exo4 / liste_a_completer.c
1 /********************************************************************/
2 /* Implantation d'une liste triee d'entiers */
3 /********************************************************************/
4 #include <stdio.h>
5 #include <stdlib.h>
6
7 typedef int element;
8
9 typedef struct cellule {
10 element valeur;
11 struct cellule *suivant;
12 } Cellule, *Liste;
13
14
15 Liste ajouter_iter(element e, Liste L)
16 {Cellule *pc, *p1=L, *p2=NULL;
17
18 pc = (Cellule *)malloc(sizeof(Cellule));
19 pc->valeur=e;
20 pc->suivant=NULL;
21
22 if (!L) /* liste vide */ return pc;
23
24 while (p1 && (e >= p1->valeur))
25 {p2 = p1;
26 p1 = p1->suivant;}
27
28 if (!p2) /* insertion en tete */
29 {pc->suivant = L;
30 L=pc; }
31 else /* insertion entre p2 et p1 */
32 {p2->suivant = pc;
33 pc->suivant = p1; }
34
35 return L;
36 }
37
38
39 int longueur_iter(Liste L)
40 {
41 return 0; /* ... */
42 }
43
44
45 int longueur_rec(Liste L)
46 {
47 /* ... */
48 }
49
50
51 void visualiser_iter(Liste L)
52 {
53 /* ... */
54 }
55
56
57 void visualiser_rec(Liste L)
58 {
59 /* ... */
60 }
61
62
63 int rechercher_iter(element e, Liste L)
64 {
65 /* ... */
66 }
67
68
69 Liste rechercher_rec(element e, Liste L)
70 {
71 /* ... */
72 }
73
74
75 Liste ajouter_rec(element e, Liste L)
76 {
77 /* ... */
78 }
79
80
81 Liste supprimer_iter(element e, Liste L)
82 {
83 /* ... */
84 }
85
86 Liste supprimer_rec(element e, Liste L)
87 {
88 /* ... */
89 }
90
91
92 Liste inverser_iter(Liste L)
93 {
94 /* ... */
95 }
96
97
98 Liste inverser_rec(Liste L)
99 {
100 /* ... */
101 }
102
103
104 /****************************************************************************/
105 int main()
106 {
107 int x;
108 Liste L=NULL;
109 scanf("%d",&x);
110 L=ajouter_iter(x,L);
111 printf("longueur=%d\n",longueur_iter(L));
112 visualiser_iter(L);
113 /* ... */
114 }
115 /****************************************************************************/
116