Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
2.4. ДЕРЕВЬЯТеперь введем очень важный вид ориентированных графов — деревья — и рассмотрим структуры данных, пригодные для их представления. Определение. Ориентированный граф без циклов называется ориентированным ациклическим графом. (Ориентированное) дерево (иногда его называют корневым деревом) — это ориентированный ациклический граф, удовлетворяющий следующим условиям: 1) имеется в точности один узел, называемый корнем, в который не входит ни одно ребро, 2) в каждый узел, кроме корня, входит ровно одно ребро, 3) из корня к каждому узлу идет путь (который, как легко показать, единствен). Ориентированный граф, состоящий из нескольких деревьев, называется лесом. Леса и деревья — столь часто встречающиеся частные случаи ориентированных ациклических графов, что для описания их свойств стоит ввести специальную терминологию. Определение. Пусть
Рис. 2.7. Двоичное дерево и его представление. Глубина узла Упорядоченным деревом называется дерево, в котором множество сыновей каждого узла упорядочено. При изображении упорядоченного дерева мы будем считать, что множество сыновей каждого узла упорядочено слева направо. Двоичным (бинарным) деревом называется такое упорядоченное дерево, что 1) каждый сын произвольного узла идентифицируется либо как левый сын, либо как правый сын, 2) каждый узел имеет не более одного левого сына и не более одного правого сына. Поддерево Двоичное дерево обычно представляют в виде двух массивов Пример 2.3. Двоичное дерево и его представление изображены на рис. 2.7. Определение. Двоичное дерево называется полным, если для некоторого целого числа Полное двоичное дерево высоты Многие алгоритмы, использующие деревья, часто проходят дерево (посещают каждый его узел) в некотором порядке. Известно несколько систематических способов сделать это. Мы рассмотрим три широко распространенных способа: прохождение дерева в прямом порядке, обратном и внутреннем.
Рис. 2,8, Прохождение дерева: а — в прямом порядке; б - обратном; в — внутреннем. Определение. Пусть Прохождение дерева 1) посетить корень 2) посетить в прямом порядке поддеревья с корнями Прохождение дерева 1) посетить в обратном порядке поддеревья с корнями 2) посетить корень Прохождение двоичного дерева во внутреннем порядке определяется следующей рекурсией: 1) посетить во внутреннем порядке левое поддерево корня (если оно существует), 2) посетить корень, 3) посетить во внутреннем порядке правое поддерево корня (если оно существует). Пример 2.4. На рис. 2.8 изображено двоичное дерево, узлы которого пронумерованы в соответствии с прохождением его в прямом порядке (рис. 2.8,а), обратном Если при некотором прохождении дерева его узлам были присвоены какие-то номера, то на узлы удобно ссылаться по этим номерам. Так, Если все узлы занумерованы в порядке посещения, то рассмотренные нумерации обладают рядом интересных свойств. При нумерации в прямом порядке все узлы поддерева с корнем Номера узлов двоичного дерева, соответствующие внутреннему порядку, обладают тем свойством, что номера узлов в левом поддереве для Дадим теперь еще одно, последнее определение, касающееся деревьев. Определение. Неориентированным деревом называется неориентированный ациклический связный (любые два узла соединены путем) граф. Корневое неориентированное дерево — это неориентированное дерево, в котором один узел выделен в качестве корня. Ориентированное дерево можно превратить в корневое неориентированное, просто сделав все его ребра неориентированными. Мы будем употреблять одну и ту же терминологию и пользоваться одними и теми же обозначениями для корневых неориентированных и для ориентированных деревьев. Основное математическое различие здесь состоит в том, что все пути в ориентированном дереве идут от предков к потомкам, тогда как в корневом неориентированном дереве пути могут идти в обоих направлениях.
|
1 |
Оглавление
|