TP4 Corrections

This commit is contained in:
Geoffrey Frogeye 2017-03-14 10:58:40 +01:00
parent b464da4e57
commit 7e86d5ff5b
4 changed files with 53 additions and 64 deletions

View file

@ -1,17 +1,34 @@
41
3
29
23
37
5
59
31
17
53
11
7
43
13
19
47
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

View file

@ -10,14 +10,6 @@ struct Cellule {
typedef struct Cellule Cellule;
// 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) {
Cellule* p;
p = malloc(sizeof(Cellule));
@ -81,7 +73,8 @@ void desallouer2(Cellule** l) {
int main() {
// 2.1.7
Cellule* l = init_cellule(42);
Cellule* l = NULL;
ajout_tete(&l, 42);
ajout_tete(&l, 43);
ajout_tete(&l, 40);
imprimer(l);

View file

@ -8,14 +8,6 @@ struct 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) {
Cellule* p;
p = malloc(sizeof(Cellule));
@ -25,14 +17,10 @@ void ajout_tete(Cellule** l, int val) {
}
void imprimer(Cellule* l) {
if (l == NULL) {
return;
}
while (l->suiv != NULL) {
while (l != NULL) {
printf("%d\n", l->val);
l = l->suiv;
}
printf("%d\n", l->val);
}
bool est_trie(Cellule* l) {
@ -68,7 +56,7 @@ void desallouer(Cellule** l) {
void inserer(Cellule** p, int val) {
Cellule* l = *p;
if (l == NULL) {
l = init_cellule(val);
ajout_tete(p, val);
return;
}
while (l->suiv != NULL && l->val < val) {
@ -77,17 +65,16 @@ void inserer(Cellule** p, int val) {
}
if (l->val == val) {
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() {
// Création de la liste
Cellule* l = init_cellule(59);
Cellule* l = NULL;
ajout_tete(&l, 59);
ajout_tete(&l, 53);
ajout_tete(&l, 47);
ajout_tete(&l, 43);

View file

@ -8,14 +8,6 @@ struct 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) {
Cellule* p;
p = malloc(sizeof(Cellule));
@ -25,14 +17,10 @@ void ajout_tete(Cellule** l, int val) {
}
void imprimer(Cellule* l) {
if (l == NULL) {
return;
}
while (l->suiv != NULL) {
while (l != NULL) {
printf("%d\n", l->val);
l = l->suiv;
}
printf("%d\n", l->val);
}
bool est_trie(Cellule* l) {
@ -67,7 +55,7 @@ void desallouer(Cellule** l) {
void inserer(Cellule** p, int val) {
Cellule* l = *p;
if (l == NULL) {
l = init_cellule(val);
ajout_tete(p, val);
return;
}
while (l->suiv != NULL && l->val < val) {
@ -76,12 +64,10 @@ void inserer(Cellule** p, int val) {
}
if (l->val == val) {
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[]) {
@ -97,11 +83,17 @@ int main(int argc, char* argv[]) {
return EXIT_FAILURE;
}
Cellule* l = init_cellule(42);
Cellule* l = NULL;
int val;
while (fscanf(fp, "%d", &val) != EOF) {
inserer(&l, val);
}
imprimer(l);
if (!est_trie(l)) {
printf("Erreur: La liste n'est pas correctement triée.\n");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}