Slt est ce que vous pouvez me donnez l’algo de bianrisation d’un arbre n-aire svp ?Je me suis creusé la tete mais sans resultat! c'est pas quelque chose de simple pour qlqn de mon niveau.
merci.
Slt est ce que vous pouvez me donnez l’algo de bianrisation d’un arbre n-aire svp ?Je me suis creusé la tete mais sans resultat! c'est pas quelque chose de simple pour qlqn de mon niveau.
merci.
je ne suis pas specialiste, mais tu peux appliquer recursivement a chaque noeud la methode suivante qui permet de creer un arbre binaire : etant donné un tableau d'objet, tu fait un premier passage en regroupant les elements par 2, puis tu regroupe les groupes en partant de la fin etc... par exemple, si tu pars de { 1,2,3,4,5 }
tu fais un premier passage :
{ noeud(1,2), noeud(3,4), 5 } note que le 5 reste tout seul car tu as un nombre impair d'objets. c'est pour ca qu'on repars de la fin, pour eviter qu'il reste trop tout seul... (peut etre que ca ne sert a rien)
2e passage :
{ noeud(1,2), noeud( noeud(3,4), 5 ) }
3e passage
{ noeud( noeud(1,2), noeud( noeud(3,4), 5 ) ) }
et tu as bien un arbre binaire.
je veux appliquer l'algo a un arbre n-aire avec une representation contigu-chainée
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #define N 3 // arbre avec 3 fils max typedef struct cel { int val; cel* fils[N]; }
Il y a la représentation :
*à droite le frère suivant
*à gauche le premier fils
Voir le livre de Michel Quercia p 94.
C'est exactement ce que j'avais montré ici :Il y a la représentation :
*à droite le frère suivant
*à gauche le premier fils
http://rperrot.developpez.com/articl.../arbres/#LII-C
Partager