Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
My_shpore_v02.doc
Скачиваний:
51
Добавлен:
21.09.2019
Размер:
2.18 Mб
Скачать

3 8(5) .Понятие обхода дерева. Виды обходов двоичного дерева. Определение структуры двоичного дерева по двум заданным обходам. Рекурсивные алгоритмы обходов двоичных деревьев.

Дерево – конечное множество T, состоящее из одного или более узлов таких, что

Имеется один специально обозначенный узел, называемый корнем данного дерева;

Остальные узлы (исключая корень) содержатся в m≥0 попарно не пересекающихся множествах T1, T2, … , Tm, каждое из которых в свою очередь является деревом. Деревья T1, T2, … , Tm называются поддеревьями данного корня.

Если корень дерева имеет не более двух поддеревьев (как и корни поддеревьев), то такое дерево называют бинарным. Будем считать, что пустое множество узлов также является бинарным деревом. В бинарном дереве поддеревья считаются упорядоченными: различают правое и левое поддеревья корня.

Обходом дерева называют способ методического исследования узлов дерева, при котором каждый узел дерева проходится точно один раз.

Для бинарного дерева существует 6 возможных вариантов обходов. Запишем на псевдокоде рекурсивные процедуры для каждого из них:

КПЛ (корень-правое-левое)

Обойти(дерево)

Обработать(корень)

Обойти(правое поддерево)

Обойти (левое поддерево)

КЛП (корень-левое-правое)

Обойти(дерево)

Обработать(корень)

Обойти(левое поддерево)

Обойти(правое поддерево)

ЛКП (левое-корень-правое)

Обойти(дерево)

Обойти(левое поддерево)

Обработать(корень)

Обойти(правое поддерево)

ПКЛ (правое-корень-левое)

Обойти(дерево)

Обойти(правое поддерево)

Обработать(корень)

Обойти(левое поддерево)

ЛПК (левое-правое-корень)

Обойти(дерево)

Обойти(левое поддерево)

Обойти(правое поддерево)

Обработать(корень)

ПЛК (правое-левое-корень)

Обойти(дерево)

Обойти(правое поддерево)

Обойти(левое поддерево)

Обработать(корень)

Как правило, результатом обхода является линейная последовательность узлов дерева. По двум заданным обходам можно восстановить исходную структуру дерева.

Суть алгоритма сводится к следующему:

Определить корень дерева (по обходам вида КПЛ, КЛП, ПЛК или ЛПК)

Определить последовательности, относящиеся к правому и левому поддеревьям (если они не пустые) (по обходам вида ПКЛ или ЛКП).

Для каждого из поддеревьев повторить описанную процедуру.

1 16(1) . Цикломатика графов. Цикломатическое число. Цикломатический базис. Связь циклов графа с цикломатическим базисом.

Маршрутом в графе – это чередующаяся последовательность вершин и рёбер, в которой любые два соседних элемента инцидентны.

Цепью в графе называют маршрут, все рёбра которого различны.

Циклом в графе называют замкнутую цепь (то есть цепь, у которой начальная и концевая вершины совпадают). Для орграфов цикл называется контуром. Эйлеров циклцикл графа, в котором каждое ребро графа участвует в его образовании ровно один раз. Гамильтонов цикл – цикл графа, в котором каждая верш. графа участвует в его образ-ии ровно один раз.

Пусть - некоторый граф ( – множество вершин, – множество рёбер). Произвольный цикл графа можно представить в виде бинарного вектора размерности q:

Таким образом, множество всех циклов графа представляет собой пространство двоичных векторов.

Цикломатический базис – это совокупность линейно независимых циклов графа, с помощью которых могут быть получены все остальные циклы. Его мощность называется цикломатическим числом графа (обозначается ). По теореме Эйлера

где , , - число компонент связности графа.

Остов графа – максимальный по включению рёбер ациклический частичный граф исходного графа. Хордами называют рёбра графа, не входящие в остов.

Алгоритм нахождения базисной системы циклов.

1)Получить остов графа (удалить из графа рёбер (хорд)).

2)Добавляя поочерёдно к остову по одной хорде ( раз) получаем базис. систему циклов.

Матрица, составленная из бинарных вектором, кодирующих все циклы графа (по строкам), называется цикломатической матрицей. Если в матрицу входят только циклы базисной системы, то и цикломатическая матрица называется базисной.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]