Probleme en C
Résolu
Bonjour,
je veux bien savoir comment puis-je faire le parcours d'un arbre N-air.
y-t-il quelqu'un qui peux me donner le code en langage C?! et merci
je veux bien savoir comment puis-je faire le parcours d'un arbre N-air.
y-t-il quelqu'un qui peux me donner le code en langage C?! et merci
1 réponse
Difficile de te répondre comme ça, ça dépend beaucoup de ta structure d'arbre (notamment comment sont stockés les successeurs d'un noeud). Ceci revient à traduire dans ce qui suit le "pour chaque successeur(noeud)".Le plus simple reste quand même de faire un appel récursif. Voici en pseudo code un parcours :
Si le parcours est sensé modifier une même variable pour chaque appel, attention à passer un pointeur vers cette variable. Par exemple si ta fonction de parcours doit compter le nombre de noeuds :
Bonne chance
void parcours(const noeud_t noeud){ // traiter noeud; pour chaque successeur(noeud){ parcours(successeur); } } int main(){ noeud_t racine = creer_arbre(); // compléter l'arbre parcours(racine); return 0; }
Si le parcours est sensé modifier une même variable pour chaque appel, attention à passer un pointeur vers cette variable. Par exemple si ta fonction de parcours doit compter le nombre de noeuds :
void parcours(const noeud_t noeud,unsigned *n){ ++ *n; pour chaque successeur(noeud){ parcours(successeur,n); } } int main(){ noeud_t racine = creer_arbre(); unsigned n = 0; // compléter l'arbre parcours(racine,&n); return 0; }
Bonne chance