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