Читайте также:
|
|
1. В каждом узле оставить только ветвь к старшему сыну (вертикальное соединение);
2. Соединить горизонтальными ребрами всех братьев одного отца;
3. Таким образом перестроить дерево по правилу:
· левый сын - вершина, расположенная под данной;
· правый сын - вершина, расположенная справа от данной (т.е. на одном ярусе с ней).
4. Развернуть дерево таким образом, чтобы все вертикальные ветви отображали левых сыновей, а горизонтальные - правых.
В результате преобразования любого дерева в бинарное получается дерево в виде левого поддерева, подвешенного к корневой вершине.
В процессе преобразования правый указатель каждого узла бинарного дерева будет указывать на соседа по уровню. Если такового нет, то правый указатель NIL. Левый указатель будет указывать на вершину следующего уровня. Если таковой нет, то указатель устанавливается на NULL
Рис.6.14. Исходное дерево
Рис.6.15 Промежуточный результат перестройки дерева
Рис. 6.16. Представление дерева в виде бинарного
Описанный метод представления произвольных упорядоченных деревьев посредством бинарных деревьев можно обобщить на представление произвольного упорядоченного леса.
Правило построения бинарного дерева из леса:
корни всех поддеревьев леса соединить горизонтальными связями.
В полученном дереве узлы будут располагаться на трех уровнях.
Далее перестраивать по ранее рассмотренному плану:
в начале поддерево с корнем А,
затем В
и затем Н
В результате преобразования упорядоченного леса в бинарное дерево получается полное бинарное дерево с левым и правым поддеревом
рис.6.17. Упорядоченный лес
Рис.6.18. Промежуточный результат перестройки леса
Рис. 6.19. Представление леса в виде 2-го дерева
Дата добавления: 2015-08-10; просмотров: 150 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Бинарные деревья. | | | Красно-черные деревья |