2016-11-11 4 views
-3

Например, если у меня есть массив: {1,2,3,4,5,6}, как мне построить полное двоичное дерево с этим массивом?Построение полного двоичного дерева с использованием массива

При создании дерева, это будет выглядеть так:

        1 
          / \ 
           2  3 
          /\ /
          4 5 6 

Массив может быть любая последовательность чисел, эта последовательность является лишь примером. Я знаю, как пересекать дерево в порядке уровня, но я не уверен в логике, чтобы создать его таким образом.

+0

Попробуйте это решение: http://stackoverflow.com/questions/8876406/binarytree-implementation-in-java Это полезно для вас? –

+0

Что вы пробовали? Мы здесь не для того, чтобы творить работу для вас. Я бы предложил вам Google «Как построить двоичное дерево» и начать там – BlackHatSamurai

ответ

0

Так вы могли бы подумать о реализации этого, где каждый ребенок находится в слоте массива, который является 2 * n и 2 * n + 1, где n является слотом родителя. Например. Если у вас есть «1» в слоте массива «4», тогда установите его дети 2 и 3 в слоты «8» и «9». Это очень неэффективно, поэтому я бы посмотрел на использование класса Node, который вы связываете с помощью указателей.

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