0

Когда я пытаюсь напечатать уровень заказа BST, этот вопрос подсказывал мне.Сколько может быть последовательности BST уровня порядка с учетом последовательности preOrder и inOrder?

Вот

Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8 
In_order Sequence : 1, 2, 3, 4, 5, 6, 7, 8 

Последовательность заказа уровня для BST с выше pre_order и In_order является [4, 2, 6, 1, 3, 5, 7, 8]

Тем не менее, для того же предварительного заказа последовательность В-го порядка эта последовательность заказа уровня похоже возможно. [4, 1, 5, 2, 6, 3, 7, 8]. Я не знаю, как это сделать. Я пытаюсь понять это.

Я не могу построить BST в документе (чертеже), который удовлетворяет всем последовательностям последовательности pre_order, In-order и level.

ответ

2

Если у вас есть обход в порядке с одним из пред/послепорядка, этого достаточно для восстановления двоичного дерева. Кроме того, в случае BST (двоичный код поиск дерева) достаточно только после заказа или предварительного заказа.

В вашем случае, реконструирование BST от предварительного заказа 4, 1, 2, 3, 5, 6, 7, 8 дает следующее BST:

 4 
/ \ 
    1  5 
    \  \ 
    2  6 
    \  \ 
     3  7 
      \ 
       8 

, который дает, опять-таки уникальный, уровень порядка обхода [4,1,5,2,6,3,7,8].

Смотрите также:

+0

Я сомневаюсь в том, что вышеперечисленные заданные preOrder и Inorder, почему возможны две последовательности порядка уровней? –

+0

ваш первый порядок уровня неверен. Если вы построите дерево из заданного предзаказа и для того, чтобы вы получили уникальный порядок дерева и уровня, это дерево будет [4, 1, 5, 2, 6, 3, 7, 8] не [4, 2, 6, 1, 3, 5, 7, 8] –

1

следующая комбинация будет генерировать уникальный бинарное дерево (которое может быть БСТ).

Inorder and Preorder. 
Inorder and Postorder. 
Inorder and Level-order. 

Так что в вашем случае заказовМой & предварительного заказа приведен который будет генерировать уникальное бинарное дерево, которое BST в вашем случае так заказ уровня будет уникальным для этого дерева.

Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8 
In_order Sequence : 1, 2, 3, 4, 5, 6, 7, 8 

SO дерево будет

level 0- 4 
level 1- 1,5 
level 2- 2,6 
level 3- 3,7 
level 4- 8 

заказ Уровень является

4,1,5,2,6,3,7,8

в сортировке всегда будет уникальный обход уровня порядка

+0

Посмотрите на это. У меня есть связанный с этим вопрос. http://stackoverflow.com/questions/31020267/converting-sorted-linked-list-to-balanced-binarytree-not-returning-correctly –

 Смежные вопросы

  • Нет связанных вопросов^_^