- 5.14. Деревья и их свойства
- 5.15. Деревья и операции над ними
- Лекция 11
- Базовые понятия и утверждения
- 1. Определение и основные свойства деревьев.
- Введение в деревья
- Дерево и его свойства
- Центры и Би-Центры Дерева
- Алгоритм нахождения центров и бицентров дерева
- Маркированные деревья
- пример
- Немеченые деревья
- пример
- Укорененное дерево
- Двоичное дерево поиска
5.14. Деревья и их свойства
–
замкнутые цепи.
2. Любые 2 вершины v и w соединены единственной цепью.
Доказательство следует из определения дерева.
3. Для дерева справедливо следующее соотношение: p = q + 1 (*), где p – число вершин, q – число ребер.
Доказательство (индукцией по p):
а) p = 1 – дерево состоит из одной вершины, q = 0, тогда соотношение (*) выглядит 1 = 1.
б) Пусть соотношение (*) верно для любых деревьев, у которых вершин меньше, чем p.
в) Рассмотрим дерево с p вершинами. Уберем ребро, соединяющее вершины v и w. Наш граф разбился на 2 подграфа и
.
,
– деревья, так как они связны и не имеют замкнутых цепей. Поэтому для них верно индукционное предположение:
VW
V W
.
4. Если любые 2 вершины v и w в дереве соединить ребром, то получим ровно одну замкнутую цепь.
Доказательство следует из свойства 2.
5. Пусть G = (p, q) – дерево, где p > 1. Тогда в дереве G существуют хотя бы 2 вершины v и w такие, что .
Доказательство. Как известно, (по свойству 3). Предположим, что не существуют 2 вершины, степень которых равна 1, т.е. пусть
, а у остальных вершин
, где
. Тогда получаем, что
. Пришли к противоречию, значит, существуют вершины v и w такие, что
.
Определение. Вершины в дереве, степень которых равна 1, называются концевыми.
где max(n) – глубина (количество ярусов) дерева, – корень дерева (корень – это некоторая выделенная вершина).
5.15. Деревья и операции над ними
1. Ребро – дерево с корнем (код 01), дереву из одного ребра дается код 01.
2. Если у нас есть дерево с корнем, то результат присоединения этого дерева к ребру
– также есть дерево с корнем.
При этом пусть дерево с корнем имеет код А, тогда дереву, полученному в результате операции 2, ставится код 0А1.
3. Если у нас есть два дерева с корнем,
то результат склеивания этих деревьев также есть дерево с корнем. Если при этом у одного дерева код А, а у другого код В, тогда у дерева, которое получается склеиванием этих деревьев, код будет АВ.
Замечание. Любое дерево с корнем можно получить при помощи вышеуказанных трех операций, при этом всегда можно определить его код.
Пример. Пусть дано корневое дерево Т, определить его код, где
Решение: Исходное дерево Т получено из деревьев двукратным применением операции 3, где
1) Дерево получено из дерева с помощью операции 2, где
,
Дерево получено из дерева операции 1 двукратным применением
операции 3, тогда код дерева A‘ = 010101, следовательно, код дерева
A = 00101011.
2) Дерево Т2 получено с помощью операции 1, его код – 01.
3) Дерево Т3 получено из дерева операции 1 двукратным применением операции 2, тогда код дерева Т3 В = 000111.
В итоге код корневого дерева Т есть код А01В = 0010101101000111.
1) Длина кода дерева равна удвоенному числу его ребер (2q).
2) В любом начальном отрезке (если считать код дерева слева) число нулей числа единиц.
3) Во всем коде число нулей равно числу единиц.
Встает логичный вопрос: как восстанавливать по коду дерево?
Берем произвольный код дерева, где
, q – число ребер дерева. Идем слева направо и отмечаем такой момент, когда число нулей совпадает с числом 1. При этом возможны два случая:
1) Пусть равенство наступит в конце кода, тогда , т.е. дерево с кодом
получено из дерева с кодом
с помощью операции 2.
2) Пусть равенство наступит, не доходя до конца кода, т.е. , а это означает, что дерево с кодом
получено из деревьев соответственно с кодами
и
с помощью операции 3.
Аналогично, т.е. согласно пунктам 1) и 2), восстанавливаем по кодам соответствующие им деревья. Этот процесс называется декодированием. Не сложно доказать (мы практически уже показали), что между деревом и его кодом существует взаимно однозначное соответствие.
Пример. Построить корневое дерево по его коду .
Решение: q = 7. , где
. Таким образом, дерево с кодом
получено из деревьев соответственно с кодами
с трехкратным применением операции 3. Аналогично, дерево с кодом
получено из дерева операции 1 с применением операции 2; деревья с кодами
и
– деревья операции 1; дерево с кодом
получено из дерева операции 1 с двукратным применением операции 2. В итоге дерево Т выглядит следующим образом:
Источник
Лекция 11
Дерево. Лес (ациклический граф). Остовный подграф. Остов. Взвешенный граф. Минимальный остов. Кодирование деревьев.
Базовые понятия и утверждения
1. Определение и основные свойства деревьев.
Определение. Граф называется деревом, если он связный и в нем нет циклов.
Одноэлементный граф, т.е. граф, имеющий одну вершину и не имеющий ребер, также считается деревом.
Граф называется лесом (или ациклическим графом), если в нем нет циклов. Очевидно, что каждая компонента связности леса — дерево.
Пример 1. Граф (рис. 3.19) не является ни деревом, ни лесом. Граф
(рис. 3.20) — дерево. Граф
(рис. 3.21) — лес, состоящий из четырех деревьев.
Пример 2. Представьте диаграммами все (с точностью до изоморфизма) деревья с пятью вершинами.
◄ Имеется три различных (с точностью изоморфизма) дерева с пятью вершинами (рис. 3.22 — 3.24). ►
Деревья обладают рядом характеристических свойств, по наличию или отсутствию каждого их которых в рассматриваемом графе можно определить, является граф деревом или нет. Перечислим эти свойства:
1) граф — дерево в том и только в том случае, когда в нем нет циклов и
;
2) граф — дерево в том и только в том случае, когда он связный и
;
3) граф — дерево в том и только в том случае, когда он связный, и каждое его ребро является мостом;
4) граф — дерево в том и только в том случае, когда любые две вершины графа
можно соединить простой цепью, притом единственной;
5) граф — дерево в том и только в том случае, когда в нем нет циклов и добавление к нему нового ребра приводит к образованию единственного простого цикла.
Также приведем одно из характеристических свойств леса: граф , имеющий
компонент связности, является лесом в том и только в том случае, когда
.
2. Остовы графа. Подграф графа
называется остовным подграфом, если множество его вершин совпадает с множеством вершин графа
.
Остовом обыкновенного графа называется его остовный подграф, являющийся деревом.
Пусть — связный граф. Если
содержит хотя бы один цикл, то удалив из графа
некоторое ребро этого цикла, мы уменьшим число циклов графа по крайней мере на единицу, сохранив при этом его связность. Ясно, что, последовательно разрушая циклы данного графа, можно прийти к остову графа. Поскольку дерево с
вершинами имеет ровно
ребро, то для получения остова нужно удалить из графа
ребро, т.е. число ребер, равное цикломатическому числу
связного графа
.
Пусть теперь — произвольный граф с
компонентами связности. Из каждой компоненты связности
этого графа удалим
ребро так, чтобы получился остов этой компоненты. В результате получим некоторый остовный подграф графа
. Подсчитаем общее число ребер, которое нам пришлось для этого удалить. Сложив равенства
,
, получим:
.
Таким образом, чтобы получить остовный подграф, нужно, последовательно разрушая циклы графа, удалить из него число ребер, равное его цикломатическому числу.
Пример 3. Построим остов графа , диаграмма которого изображена на рис. 3.25. Удалим из графа
ребро
; получим граф
(рис. 3.26). Из графа
удалим ребро
; получим граф
(рис. 3.27). Из графа
удалим ребро
; получим граф
(рис. 3.28), который является одним из остовов графа
.
Источник
Введение в деревья
Дерево – это дискретная структура, которая представляет иерархические отношения между отдельными элементами или узлами. Дерево, в котором родитель имеет не более двух детей, называется бинарным деревом.
Дерево и его свойства
Определение – Дерево – это связный ациклический неориентированный граф. Между каждой парой вершин в G существует уникальный путь. Дерево с N числом вершин содержит ( N − 1 ) число ребер. Вершина, которая имеет 0 градусов, называется корнем дерева. Вершина, имеющая 1 градус, называется листовым узлом дерева, а степень внутреннего узла составляет не менее 2.
Пример . Ниже приведен пример дерева.
Центры и Би-Центры Дерева
Центр дерева – это вершина с минимальным эксцентриситетом. Эксцентриситет вершины X в дереве G – это максимальное расстояние между вершиной X и любой другой вершиной дерева. Максимальный эксцентриситет – диаметр дерева. Если у дерева есть только один центр, оно называется Центральным деревом, а если у дерева есть только несколько центров, оно называется Би-центральным деревом. Каждое дерево является либо центральным, либо двухцентральным.
Алгоритм нахождения центров и бицентров дерева
Шаг 1 – Удалите все вершины степени 1 из данного дерева, а также удалите их падающие ребра.
Шаг 2 – Повторяйте шаг 1, пока не останется одна вершина или две вершины, соединенные ребром. Если осталась одна вершина, то это центр дерева, а если осталось две вершины, соединенные ребром, то это бицентр дерева.
Узнайте центр / би-центр следующего дерева –
Сначала мы удалим все вершины степени 1, а также удалим их падающие ребра и получим следующее дерево:
Опять же, мы удалим все вершины степени 1, а также удалим их инцидентные ребра и получим следующее дерево:
Наконец, мы получили одну вершину «c» и остановили алгоритм. Поскольку существует единственная вершина, у этого дерева есть один центр ‘c’, и дерево является центральным деревом.
Узнайте центр / би-центр следующего дерева –
Сначала мы удалим все вершины степени 1, а также удалим их падающие ребра и получим следующее дерево:
Опять же, мы удалим все вершины степени 1, а также удалим их инцидентные ребра и получим следующее дерево:
Наконец, у нас осталось две вершины «c» и «d», поэтому мы останавливаем алгоритм. Поскольку оставлены две вершины, соединенные ребром, это дерево имеет двухцентровый «cd», а дерево является двухцентровым.
Маркированные деревья
Определение – помеченное дерево – это дерево, вершинам которого присваиваются уникальные номера от 1 до n. Мы можем посчитать такие деревья для малых значений n вручную, чтобы предположить общую формулу. Число помеченных деревьев из n вершин равно n n − 2 . Два помеченных дерева изоморфны, если их графы изоморфны и соответствующие точки двух деревьев имеют одинаковые метки.
пример
Немеченые деревья
Определение – немеченое дерево – это дерево, вершинам которого не назначены никакие числа. Число помеченных деревьев с числом вершин n равно $ \ frac <(N + 1)! N! >$ (n- е каталонское число)
пример
Укорененное дерево
Корневое дерево G – это связный ациклический граф со специальным узлом, который называется корнем дерева, и каждое ребро прямо или косвенно происходит от корня. Упорядоченное корневое дерево – это корневое дерево, в котором упорядочены дочерние элементы каждой внутренней вершины. Если каждая внутренняя вершина корневого дерева имеет не более m дочерних элементов, она называется m-арным деревом. Если каждая внутренняя вершина корневого дерева имеет ровно m детей, она называется полным m-арным деревом. Если m = 2 , корневое дерево называется бинарным деревом.
Двоичное дерево поиска
Двоичное дерево поиска – это двоичное дерево, которое удовлетворяет следующему свойству:
- X в левом поддереве вершины V , V a l u e ( X ) l e V a l u e ( V )
- Y в правом поддереве вершины V , V a l u e ( Y ) g e V a l u e ( V )
Таким образом, значение всех вершин левого поддерева внутреннего узла V меньше или равно V , а значение всех вершин правого поддерева внутреннего узла V больше или равно V . Количество ссылок от корневого узла к самому глубокому узлу является высотой дерева двоичного поиска.
Источник