repositories
/
Algorithmic_C.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TP6: Use K&R coding style
[Algorithmic_C.git]
/
TP6
/
arbres
/
arbre-n-aire
/
arbre_n_aire.c
diff --git
a/TP6/arbres/arbre-n-aire/arbre_n_aire.c
b/TP6/arbres/arbre-n-aire/arbre_n_aire.c
index 16fd0962755d7b8daadaf5614cb226a2f6d08880..fecc499895928027db32545eda2180b58f1b49b7 100644
(file)
--- a/
TP6/arbres/arbre-n-aire/arbre_n_aire.c
+++ b/
TP6/arbres/arbre-n-aire/arbre_n_aire.c
@@
-59,15
+59,15
@@
NOEUD *insere_fin(char *mot, int i)
NOEUD *insere(NOEUD * p, char *mot, int i)
{
/* i est l'indice de la lettre courante dans le mot */
NOEUD *insere(NOEUD * p, char *mot, int i)
{
/* i est l'indice de la lettre courante dans le mot */
- if (p == NULL)
- return p = insere_fin(mot, i);
- if (mot[i] == p->lettre) {
-
- return insere(p->fils, mot, i + 1);
+ if (p == NULL) {
+ return insere_fin(mot, i);
}
}
- //return insere (p->frere, mot, i);
if (mot[i] > p->lettre) {
return insere(p->frere, mot, i);
if (mot[i] > p->lettre) {
return insere(p->frere, mot, i);
+ } else if (mot[i] == p->lettre) {
+ return insere(p->fils, mot, i + 1);
+ } else {
+ return insere_fin(mot, i);
}
}
}
}
@@
-91,6
+91,7
@@
void affiche_arbre(NOEUD * p, int prof)
/* prof est utilise pour decaller l'affichage avec des espaces (selon le niveau dans l'arbre) */
{
int i;
/* prof est utilise pour decaller l'affichage avec des espaces (selon le niveau dans l'arbre) */
{
int i;
+
if (p) {
affiche_arbre(p->frere, prof);
for (i = 0; i < prof; i++)
if (p) {
affiche_arbre(p->frere, prof);
for (i = 0; i < prof; i++)
@@
-117,6
+118,7
@@
NOEUD *charge_dico(char *nom_fichier, int *nb_mots)
char mot[N];
int i;
p = NULL;
char mot[N];
int i;
p = NULL;
+
fp = fopen(nom_fichier, "rt");
if (fp == NULL)
exit(-1);
fp = fopen(nom_fichier, "rt");
if (fp == NULL)
exit(-1);
@@
-141,6
+143,7
@@
void sauve_dico(NOEUD * p, char *nom_fichier, int nb_mots)
{
FILE *fp;
char mot[N];
{
FILE *fp;
char mot[N];
+
fp = fopen(nom_fichier, "wt");
if (fp == NULL)
exit(-1);
fp = fopen(nom_fichier, "wt");
if (fp == NULL)
exit(-1);
@@
-155,6
+158,7
@@
int main(int argc, char *argv[])
char mot[N];
int nb_mots = 0;
NOEUD *arbre = NULL;
char mot[N];
int nb_mots = 0;
NOEUD *arbre = NULL;
+
//printf ("saisir un mot : ");
//gets (mot);
//printf ("\ninsertion de %s\n", mot);
//printf ("saisir un mot : ");
//gets (mot);
//printf ("\ninsertion de %s\n", mot);
@@
-166,6
+170,7
@@
int main(int argc, char *argv[])
affiche_arbre(arbre, 0);
if (recherche(arbre, "salut", 0))
printf("mot \"salut\" present\n");
affiche_arbre(arbre, 0);
if (recherche(arbre, "salut", 0))
printf("mot \"salut\" present\n");
+ free(arbre);
/* TODO */
}
/* TODO */
}