A voir également:
- Arbre à partir d'une expression fonctionnelle
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Recherche à partir d'une image - Guide
- Avatar facebook à partir de photo - Guide
- Chaque fichier en ligne sur le web a un chemin d’accès sur un serveur. c’est le cas du fichier du logo présent sur la page de cette ville. quel est le chemin de ce fichier à partir de la racine du site ? - Forum Graphisme
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
1 réponse
Utilisateur anonyme
21 juin 2008 à 19:02
21 juin 2008 à 19:02
Il faut créer une fonction récursive qui va lire chaque caractère de ta forme fonctionnelle :
Si tu tombes sur un opérateur (/*-+) tu ajoutes un noeud à gauche.
Si tu tombes sur une variable : tu ajoutes une feuille à gauche si le noeud courant n'en possède pas, à droite s'il en possède et tu remontes d'un cran dans l'arbre (puisque les deux feuilles sont établies).
Si tu tombes sur un opérateur (/*-+) tu ajoutes un noeud à gauche.
Si tu tombes sur une variable : tu ajoutes une feuille à gauche si le noeud courant n'en possède pas, à droite s'il en possède et tu remontes d'un cran dans l'arbre (puisque les deux feuilles sont établies).
21 juin 2008 à 20:33
J'essaie un truc comme ci-dessous, çà me donne pas le résultat.
char main ()
{
Noeud *racine;
char c;
racine = NULL;
printf ("Etrer le aractère '#' pour terminer! ");
scanf (c);
while (c!='#') {
CreerArbre (&racine, c);
printf ("Etrer le aractère '#' pour terminer! ");
scanf (c);
}
void CreerArbre (Noeud ** racine, char c)
{
Noeud *nouveau;
nouveau = alloc ();
if (*racine == NULL) {
nouveau->nb = n;
nouveau->gauche = NULL;
nouveau->droite = NULL;
*racine = nouveau;
}
else if (n < (*racine)->nb)
CreerArbre (&(*racine)->gauche, c);
else if (n > (*racine)->nb)
CreerArbre (&(*racine)->droite, c);
}
(Merci Lami 20j)
Merci d0o0b
21 juin 2008 à 20:48
De plus, il y a une conditionnelle qui porte sur la variable n dans CreerArbre() qui n'est initialiser que dans un autre bloc conditionnel, donc inaccessible.