Quelqu'un pourrait-il m'apprendre comment restaurer un arbre binaire en utilisant des tableaux Prorder et Inorder. J'ai vu quelques exemples (aucun en JavaScript) et ils ont un sens, mais l'appel récursif ne renvoie jamais un arbre complet quand j'essaie d'écrire. J'adorerais voir des explications aussi. Voici un code pour commencer:Restaurer l'arbre binaire avec PreOrder et InOrder - Javascript
Création d'un nœud d'arborescence utilise ceci:
function Tree(x) {
this.value = x;
this.left = null;
this.right = null;
}
Création de l'arbre utilise ceci:
function retoreBinaryTree(inorder, preorder) {
}
Certains entrée de l'échantillon:
inorder = [4,2,1,5,3]
preorder = [1,2,4,3,5,6]
inorder = [4,11,8,7,9,2,1,5,3,6]
preorder = [1,2,4,11,7,8,9,3,5,6]
EDIT Je travaillais là-dessus depuis des jours et j'étais incapable de me lever Avec une solution personnelle, j'ai cherché un peu (la plupart ont été écrits en Java). J'ai essayé d'imiter this solution mais en vain.
belle, qu'avez-vous essayé? –
J'ai essayé de créer une fonction récursive appelée arbre de construction qui prenait la liste de précommande et d'inorder ainsi que les variables qui représentaient des nombres tels que start et end. La fonction crée un noeud, ajuste le début et la fin en fonction de l'indice de la valeur de ce noeud. Trouvez les noeuds gauche et droit s'ils existent, puis renvoyez le noeud. Le problème est qu'il n'a jamais retourné un arbre complet. Ici, je posterai où j'ai eu cette solution. –