Может ли кто-нибудь научить меня, как восстановить двоичное дерево, используя массивы Prorder и Inorder. Я видел несколько примеров (ни одного в JavaScript), и они вроде как имеют смысл, но рекурсивный вызов никогда не возвращает полное дерево, когда я пытаюсь писать. Тоже хотелось бы увидеть пояснения. Вот код для начала:
Создание узла дерева использует это:
function Tree(x) {
this.value = x;
this.left = null;
this.right = null;
}
Создание дерева использует это:
function retoreBinaryTree(inorder, preorder) {
}
Некоторый пример ввода:
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 Я работал над этим в течение нескольких дней и не смог придумать собственное решение, поэтому я искал некоторые из них (большинство из них были написаны на Java). Я попытался имитировать это решение, но но безрезультатно.