Add TP5 skeleton
[Algorithmic_C.git] / TP5 / exo4 / liste_a_completer.c
CommitLineData
16d1d589
JB
1/********************************************************************/
2/* Implantation d'une liste triee d'entiers */
3/********************************************************************/
4#include <stdio.h>
5#include <stdlib.h>
6
7typedef int element;
8
9typedef struct cellule {
10 element valeur;
11 struct cellule *suivant;
12} Cellule, *Liste;
13
14
15Liste 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
39int longueur_iter(Liste L)
40{
41 return 0; /* ... */
42}
43
44
45int longueur_rec(Liste L)
46{
47 /* ... */
48}
49
50
51void visualiser_iter(Liste L)
52{
53 /* ... */
54}
55
56
57void visualiser_rec(Liste L)
58{
59 /* ... */
60}
61
62
63int rechercher_iter(element e, Liste L)
64{
65 /* ... */
66}
67
68
69Liste rechercher_rec(element e, Liste L)
70{
71 /* ... */
72}
73
74
75Liste ajouter_rec(element e, Liste L)
76{
77 /* ... */
78}
79
80
81Liste supprimer_iter(element e, Liste L)
82{
83 /* ... */
84}
85
86Liste supprimer_rec(element e, Liste L)
87{
88 /* ... */
89}
90
91
92Liste inverser_iter(Liste L)
93{
94 /* ... */
95}
96
97
98Liste inverser_rec(Liste L)
99{
100 /* ... */
101}
102
103
104/****************************************************************************/
105int 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