blob: d99d75a69c8bf40c9afb58c837b1139d38749ebd (
plain)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#include <iostream>
struct cellule {
int contenu;
cellule *suivant;
};
struct file {
cellule *premier;
cellule *dernier;
};
file* init () {
file * ret = new file;
ret->premier=NULL;
ret->dernier=NULL;
return ret;
}
int cardinal ( file *w) {
int ret = 1;
if (w->premier == NULL ) return 0;
cellule * tmp = w->premier;
while ( tmp->suivant != NULL) {
tmp = tmp->suivant;
ret ++;
}
return ret;
}
bool estvide(file *w){
return cardinal(w)==0;
}
void ajouter(file *w, int valeur){
cellule * tmp = new cellule;
tmp->contenu = valeur;
tmp->suivant = w->premier;
w->premier = tmp;
}
int retire( file *w) {
int value;
cellule * ptr = w->premier;
while ( ptr->suivant->suivant != NULL) {
ptr = ptr->suivant;
}
value = ptr->suivant->contenu;
delete ptr->suivant;
ptr->suivant = NULL;
w->dernier = ptr;
return value;
}
void retirefile ( file * w) {
while ( w->premier != NULL) {
retire(w);
}
delete w;
}
void affichefile ( file * w ) {
cellule * ptr = w->premier;
std::cout << "\" ";
while ( ptr != NULL) {
std::cout<< ptr->contenu << " ";
ptr= ptr->suivant;
}
std::cout << " \""<< std::endl;
}
int main () {
file * ptrfile = init();
std::cout << " Taille de la file : " << cardinal(ptrfile)<< std::endl;
return 0;
}
|