[Список тем] [Вступление к этой теме] [1] [2] [3]
Ориентированные (упорядоченные) деревья являются абстракцией
иерархических отношений, которые очень часто встречаются как в
практической жизни, так и в математике и в программировании.
Дерево (ориентированное) и иерархия - это равнообъемные понятия.
Определение |
Ориентированным деревом (или ордеревом, или корневым деревом) называется орграф со следующими свойствами:
|
ТЕОРЕМА |
Ордерево обладает следующими свойствами:
|
доказательство
v
V\{u} d+(v) = 1,
следовательно, q = p - 1.
2. Пусть G - ордерево, граф G' получен из G
отменой ориентации ребер, u - корень.
Тогда
v1 v2
V
<v1, u>
G' &
<u, v2>
G', следовательно,
v1, v2
<v1, v2> и граф G' связен.
Таким образом, учитывая п. 4. теоремы 2, G' - дерево.
3. Следует из 2.
4. От противного. Если бы в G существовали два пути из u в v, то в G' имелся бы цикл.
5. Пусть Gv - правильный подграф, определяемый множеством узлов, достижимых из v. Тогда d+Gv (v) = 0, иначе узел v был бы достижим из какого-то узла v'
Gv и, таким образом, в Gv, а значит, и в G имелся бы контур, что противоречит 3. Далее имеем:
v'Gv\{v}d+(v')=1, так как Gv G. Все вершины Gv достижимы из v по построению. По определению получаем, что Gv - ордерево.
6. Пусть вершина и назначена корнем и дуги последовательно ориентированы "от корня" обходом в глубину. Тогда d+(u) = 0 по построению;
v
V\{u} d+(v) = 1, так как входящая дуга появляется
при первом посещении узла; все узлы достижимы из корня, так как обход
в глубину посещает все вершины связного графа. Таким образом, по
определению получаем ордерево.
ЗАМЕЧАНИЕ |
Каждое свободное дерево определяет не более р ориентированных деревьев. Таким образом, общее число различных ордеревьев с р узлами не более чем в р раз превосходит общее число различных свободных деревьев с р вершинами. |
Определения | Концевая вершина ордерева называется листом. Путь из корня в лист называется ветвью. Длина наибольшей ветви ордерева называется высотой. Уровень узла ордерева - это расстояние от корня до узла. Сам корень имеет уровень 0. Узлы одного уровня образуют ярус дерева. |
ЗАМЕЧАНИЕ | Наряду с "растительной" применяется еще и "генеалогическая" терминология. Узлы, достижимые из узла u, называются потомками узла u (потомки образуют поддерево). Если в дереве существует дуга (u, v), то узел u называется отцом (или родителем) узла v, a узел v называется сыном узла u. Сыновья одного узла называются братьями. |
Ордерево Т - это конечное множество узлов, таких что:
1. имеется один узел r, называемый корнем данного дерева;
2. остальные узлы (исключая корень) содержатся в k попарно
непересекающихся " множествах T1, ..., Tk, каждое из
которых является ордеревом (k >= 0).
T={{r}, T1, ...,Tk}.
Множества Т1, ..., Tk в экивалентном
определении ордерева являются поддеревьями. Если относительный порядок
поддеревьев T1, ..., Tk фиксирован,
то ордерево называется упорядоченным.
Пример
Ориентированные и упорядоченные ориентированные деревья интенсивно
используются в программировании.
1. Выражения. Для представления выражений языков программирования,
как правило, используются ориентированные упорядоченные деревья.
Пример представления выражения a + b * с показан на рис. 7 слева.
2. Для представления блочной структуры программы и связанной с ней
структуры областей определения идентификаторов часто используется
ориентированное дерево (может быть, неупорядоченное, так как порядок
определения переменных в блоке в большинстве языков программирования
считается несущественным). На рис. 7 в центре показана структура областей
определения идентификаторов а, b, с, d, e, причем для отображения
структуры дерева использована альтернативная техника.
3. Для представления иерархической структуры вложенности элементов
данных и/или операторов управления часто используется техника отступов,
показанная на рис. 7 справа.
4. Структура вложенности каталогов и файлов в современных операционных системах является упорядоченным ориентированным деревом.
ОТСТУПЛЕНИЕ | Это отражается даже в терминологии - "корневой каталог диска". |
5. Различные "уравновешенные скобочные структуры" (например (o(b)(c(d)(e)))) являются ориентированными упорядоченными деревьями.
ЗАМЕЧАНИЕ | Общепринятой практикой при изображении деревьев является соглашение о том, что корень находится наверху и все стрелки дуг ориентированы сверху вниз, поэтому стрелки можно не изображать. Таким образом, диаграммы свободных, ориентированных и упорядоченных деревьев оказываются графически неотличимыми, и требуется дополнительное указание, дерево какого класса изображено на диаграмме. В большинстве случаев это ясно из контекста. |
Пример
На рис. 8 приведены три диаграммы деревьев, которые внешне выглядят различными. Обозначим дерево слева - (1), в центре - (2) и справа - (3). Как упорядоченные деревья, они все различны: (1)
(2), (2)
(3), (3)
(1). Как ориентированные деревья (1) = (2), но (2)
(3). Как свободные деревья, они все изоморфны: (1) = (2) = (3).
Определение |
Бинарное дерево - это конечное множество узлов, которое либо пусто, либо состоит из корня и двух непересекающихся бинарных деревьев - левого и правого. Бинарное дерево не является упорядоченным ордеревом. |
Пример
На рис. 9 приведены две диаграммы деревьев, которые изоморфны как упорядоченные, ориентированные и свободные деревья, но не изоморфны как бинарные деревья.
[Список тем] [Вступление к этой теме] [1] [2] [3]