Сведение m-арного дерева к бинарному


Неформальный алгоритм:

1.В любом узле дерева отсекаются все ветви, кроме крайней левой, соответствующей старшим сыновьям.

2.Соединяется горизонтальными линиями все сыновья одного родителя.

3. Старшим сыном в любом узле полученной структуры будет узел, находящийся под данным узлом (если он есть).

Обходы бинарных деревьев и леса

Многие алгоритмы работы с бинарными деревьями основаны на последовательной (в определенном порядке) обработке узлов дерева. В этом случае говорят об обходе (прохождении) бинарного дерева. Такой обход порождает определенный порядок перечисления узлов бинарного дерева. Выделяют несколько стандартных вариантов обхода. Будем именовать их в зависимости от того порядка, в котором при этом посещаются корень дерева и узлы левого и правого поддеревьев.

Приведем рекурсивные процедуры КЛП-, ЛКП- и ЛПК-обходов, прямо соответствующие их рекурсивным определениям (операция обработки узла обозначена как «посетить (узел)»):

 

procedure обходКЛП (b: BTree); {прямой}

begin

if not Null (b) then

begin

посетить (Root (b));

обходКЛП (Left (b));

обходКЛП (Right (b));

end

end{обходКЛП};

procedure обходЛКП (b: BTree);{обратный}

begin

if not Null (b) then

begin

обходЛКП (Left (b));

посетить (Root (b));

обходЛКП (Right (b));

end

end{обходЛКП};

procedure обходЛПК (b: BTree);{концевой}

begin

if not Null (b) then

begin

обходЛПК (Left (b));

обходЛПК (Right (b));

посетить ( Root (b));

end

end{обходЛПК}

 

В литературе используется различная терминология при именовании видов обхода бинарного дерева. Перечислим наиболее популярные варианты терминологии (виды обходов перечислены во всех вариантах в одной и той же последовательности):

1) КЛП, ЛКП, ЛПК;

2) прямой, обратный, концевой;

3) прямой, симметричный, обратный;

4) сверху вниз, слева направо, снизу вверх6];

5) префиксный, инфиксный, постфиксный.

Еще один полезный способ обхода бинарного дерева - обход в горизонтальном порядке (в ширину). При таком способе узлы бинарного дерева проходятся слева направо, уровень за уровнем от корня вниз (поколение за поколением от старших к младшим).

Иногда обход КЛП называют обходом в глубину. В варианте 2 названия обходам даны соответственно тому, что в КЛП-порядке корень посещается перед посещением узлов левого поддерева (прямой порядок), а в ЛКП-порядке корень посещается после обхода узлов левого поддерева (обратный порядок). В ЛПК-порядке корень посещается после обхода узлов левого и правого поддеревьев (концевой порядок).

 



Дата добавления: 2018-05-10; просмотров: 1554;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.