Примеры решения задач
Задача 1. Восстановить и нарисовать бинарное ордерево по префиксному коду .
Решение. Наибольшая длина двоичной строки равна трем, следовательно, глубина ордерева также равна трем. Так как в префиксном коде указаны только висячие вершины, то по ним и восстанавливаем ордерево
Задача 2. Построить код Прюфера для дерева
Задача 3. Восстановить дерево по коду Прюфера
Решение. Число символов в коде n-2=6, значит, у дерева n=8 вершин. Наименьшим из номеров, не входящих в код, является 3, значит, вершина 3 инцидентна вершине 1. Вычеркиваем 3 из списка вершин и просматриваем список дальше. Наименьшим из оставшихся и не входящих в код номеров является 5. Вершина 5 инцидентна вершине 1.
1 2 3 4 5 6 7 8 31.
(вершина 4 становится висячей).
(вершина 1 становится висячей).
(вершина 6 становится висячей).
Задачи для самостоятельного решения
Задача 2. Написать код Прюфера для данного дерева:
§8. Обход дерева. Понятие списка. Деревья и списки
Часто необходимо обойти все вершины большого дерева не хаотически, а по определенному алгоритму. Для бинарных ориентированных деревьев существует три канонических способа обхода.
- Прямой (КЛП – корень, лево, право). Сначала мы учитываем корень, затем левое поддерево и правое поддерево. Это правило выполняется для каждой вершины, начиная с корня.
- Обратный (ЛКП – лево, корень, право). Сначала мы учитываем левое поддерево, затем корень и правое поддерево. Это правило выполняется для всех вершин, начиная с корня.
- Концевой (ЛПК – лево, право, корень). Сначала мы учитываем левое поддерево, затем правое и корень.
Примеры решения задач
Задача 1. Обойти тремя способами бинарное дерево 1
Источник