TP4 Corrections
This commit is contained in:
parent
b464da4e57
commit
7e86d5ff5b
|
@ -1,17 +1,34 @@
|
||||||
41
|
|
||||||
3
|
|
||||||
29
|
|
||||||
23
|
|
||||||
37
|
|
||||||
5
|
|
||||||
59
|
|
||||||
31
|
|
||||||
17
|
|
||||||
53
|
|
||||||
11
|
|
||||||
7
|
|
||||||
43
|
|
||||||
13
|
13
|
||||||
19
|
|
||||||
47
|
|
||||||
2
|
2
|
||||||
|
5
|
||||||
|
-3
|
||||||
|
-37
|
||||||
|
-41
|
||||||
|
-2
|
||||||
|
-47
|
||||||
|
59
|
||||||
|
47
|
||||||
|
-59
|
||||||
|
-11
|
||||||
|
-31
|
||||||
|
43
|
||||||
|
-53
|
||||||
|
41
|
||||||
|
53
|
||||||
|
-43
|
||||||
|
31
|
||||||
|
-7
|
||||||
|
-13
|
||||||
|
3
|
||||||
|
-5
|
||||||
|
-19
|
||||||
|
7
|
||||||
|
-23
|
||||||
|
19
|
||||||
|
11
|
||||||
|
-17
|
||||||
|
37
|
||||||
|
17
|
||||||
|
23
|
||||||
|
29
|
||||||
|
-29
|
||||||
|
|
|
@ -10,14 +10,6 @@ struct Cellule {
|
||||||
typedef struct Cellule Cellule;
|
typedef struct Cellule Cellule;
|
||||||
|
|
||||||
// 2.1.2
|
// 2.1.2
|
||||||
Cellule* init_cellule(int val) {
|
|
||||||
Cellule* l;
|
|
||||||
l = malloc(sizeof(Cellule));
|
|
||||||
l->suiv = NULL;
|
|
||||||
l->val = val;
|
|
||||||
return l;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ajout_tete(Cellule** l, int val) {
|
void ajout_tete(Cellule** l, int val) {
|
||||||
Cellule* p;
|
Cellule* p;
|
||||||
p = malloc(sizeof(Cellule));
|
p = malloc(sizeof(Cellule));
|
||||||
|
@ -81,7 +73,8 @@ void desallouer2(Cellule** l) {
|
||||||
int main() {
|
int main() {
|
||||||
|
|
||||||
// 2.1.7
|
// 2.1.7
|
||||||
Cellule* l = init_cellule(42);
|
Cellule* l = NULL;
|
||||||
|
ajout_tete(&l, 42);
|
||||||
ajout_tete(&l, 43);
|
ajout_tete(&l, 43);
|
||||||
ajout_tete(&l, 40);
|
ajout_tete(&l, 40);
|
||||||
imprimer(l);
|
imprimer(l);
|
||||||
|
|
|
@ -8,14 +8,6 @@ struct Cellule {
|
||||||
};
|
};
|
||||||
typedef struct Cellule Cellule;
|
typedef struct Cellule Cellule;
|
||||||
|
|
||||||
Cellule* init_cellule(int val) {
|
|
||||||
Cellule* l;
|
|
||||||
l = malloc(sizeof(Cellule));
|
|
||||||
l->suiv = NULL;
|
|
||||||
l->val = val;
|
|
||||||
return l;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ajout_tete(Cellule** l, int val) {
|
void ajout_tete(Cellule** l, int val) {
|
||||||
Cellule* p;
|
Cellule* p;
|
||||||
p = malloc(sizeof(Cellule));
|
p = malloc(sizeof(Cellule));
|
||||||
|
@ -25,14 +17,10 @@ void ajout_tete(Cellule** l, int val) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void imprimer(Cellule* l) {
|
void imprimer(Cellule* l) {
|
||||||
if (l == NULL) {
|
while (l != NULL) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (l->suiv != NULL) {
|
|
||||||
printf("%d\n", l->val);
|
printf("%d\n", l->val);
|
||||||
l = l->suiv;
|
l = l->suiv;
|
||||||
}
|
}
|
||||||
printf("%d\n", l->val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool est_trie(Cellule* l) {
|
bool est_trie(Cellule* l) {
|
||||||
|
@ -68,7 +56,7 @@ void desallouer(Cellule** l) {
|
||||||
void inserer(Cellule** p, int val) {
|
void inserer(Cellule** p, int val) {
|
||||||
Cellule* l = *p;
|
Cellule* l = *p;
|
||||||
if (l == NULL) {
|
if (l == NULL) {
|
||||||
l = init_cellule(val);
|
ajout_tete(p, val);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while (l->suiv != NULL && l->val < val) {
|
while (l->suiv != NULL && l->val < val) {
|
||||||
|
@ -77,17 +65,16 @@ void inserer(Cellule** p, int val) {
|
||||||
}
|
}
|
||||||
if (l->val == val) {
|
if (l->val == val) {
|
||||||
return;
|
return;
|
||||||
|
} else if (l->val < val) {
|
||||||
|
p = &l->suiv;
|
||||||
}
|
}
|
||||||
if (l->suiv == NULL) {
|
|
||||||
l->suiv = init_cellule(val);
|
|
||||||
} else {
|
|
||||||
ajout_tete(p, val);
|
ajout_tete(p, val);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
// Création de la liste
|
// Création de la liste
|
||||||
Cellule* l = init_cellule(59);
|
Cellule* l = NULL;
|
||||||
|
ajout_tete(&l, 59);
|
||||||
ajout_tete(&l, 53);
|
ajout_tete(&l, 53);
|
||||||
ajout_tete(&l, 47);
|
ajout_tete(&l, 47);
|
||||||
ajout_tete(&l, 43);
|
ajout_tete(&l, 43);
|
||||||
|
|
|
@ -8,14 +8,6 @@ struct Cellule {
|
||||||
};
|
};
|
||||||
typedef struct Cellule Cellule;
|
typedef struct Cellule Cellule;
|
||||||
|
|
||||||
Cellule* init_cellule(int val) {
|
|
||||||
Cellule* l;
|
|
||||||
l = malloc(sizeof(Cellule));
|
|
||||||
l->suiv = NULL;
|
|
||||||
l->val = val;
|
|
||||||
return l;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ajout_tete(Cellule** l, int val) {
|
void ajout_tete(Cellule** l, int val) {
|
||||||
Cellule* p;
|
Cellule* p;
|
||||||
p = malloc(sizeof(Cellule));
|
p = malloc(sizeof(Cellule));
|
||||||
|
@ -25,14 +17,10 @@ void ajout_tete(Cellule** l, int val) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void imprimer(Cellule* l) {
|
void imprimer(Cellule* l) {
|
||||||
if (l == NULL) {
|
while (l != NULL) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (l->suiv != NULL) {
|
|
||||||
printf("%d\n", l->val);
|
printf("%d\n", l->val);
|
||||||
l = l->suiv;
|
l = l->suiv;
|
||||||
}
|
}
|
||||||
printf("%d\n", l->val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool est_trie(Cellule* l) {
|
bool est_trie(Cellule* l) {
|
||||||
|
@ -67,7 +55,7 @@ void desallouer(Cellule** l) {
|
||||||
void inserer(Cellule** p, int val) {
|
void inserer(Cellule** p, int val) {
|
||||||
Cellule* l = *p;
|
Cellule* l = *p;
|
||||||
if (l == NULL) {
|
if (l == NULL) {
|
||||||
l = init_cellule(val);
|
ajout_tete(p, val);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while (l->suiv != NULL && l->val < val) {
|
while (l->suiv != NULL && l->val < val) {
|
||||||
|
@ -76,13 +64,11 @@ void inserer(Cellule** p, int val) {
|
||||||
}
|
}
|
||||||
if (l->val == val) {
|
if (l->val == val) {
|
||||||
return;
|
return;
|
||||||
|
} else if (l->val < val) {
|
||||||
|
p = &l->suiv;
|
||||||
}
|
}
|
||||||
if (l->suiv == NULL) {
|
|
||||||
l->suiv = init_cellule(val);
|
|
||||||
} else {
|
|
||||||
ajout_tete(p, val);
|
ajout_tete(p, val);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
|
@ -97,11 +83,17 @@ int main(int argc, char* argv[]) {
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
Cellule* l = init_cellule(42);
|
Cellule* l = NULL;
|
||||||
int val;
|
int val;
|
||||||
while (fscanf(fp, "%d", &val) != EOF) {
|
while (fscanf(fp, "%d", &val) != EOF) {
|
||||||
inserer(&l, val);
|
inserer(&l, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
imprimer(l);
|
imprimer(l);
|
||||||
|
if (!est_trie(l)) {
|
||||||
|
printf("Erreur: La liste n'est pas correctement triée.\n");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue