- •5. Элементы теории графов
- •5.1. Основные понятия
- •5.2. Определение и способы задания графов определение
- •1. Списки ребер
- •2. Матрицы смежности
- •3. Матрицы инциденций
- •4. Списки смежности
- •5.3. Изоморфизм графов
- •Определение
- •5.4. Планарность графов
- •Определение
- •Определение
- •Определение
- •Определение
- •5.5. Пути и связность в графах
- •Определение
- •Определение
- •Упражнения
- •5.6. Транзитивное замыкание графов определение
- •5.7.Деревья
- •Определение
- •Определение
- •Теорема 5.4
- •Определение
- •5.8. Цикломатика графов
- •5.8.1. Циклы эйлера и гамильтона
- •Определение
- •Доказательство
- •Индуктивное предположение
- •Определение
- •5.8.2. Фундаментальное множество
- •Доказательство
- •Определение
- •Теорема 5.8
- •5.9. Внутренне и внешне устойчивые
- •Определение
- •Определение
- •Определение
- •Определение
- •Теорема 5.10
- •Теорема 5.11
- •Доказательство
- •5.10. Хроматическое число графа
- •Определение
- •Определение
- •Теорема 5.12
- •Теорема 5.13
- •Доказательство
Определение
Корневое дерево называется бинарным, если каждая его вершина связана не более чем с двумя вершинами следующего яруса.
Для бинарных деревьев может быть использована специальная форма представления.
Пусть D бинарное дерево с n вершинами.
1. Перенумеруем вершины числами от 1 до n.
2. Представим D в виде корневого дерева.
3. Потомков каждой вершины (если они имеются) назовем левым и правым потомками, если такой потомок один, то это всегда левый потомок.
4. Заполним два массива L = (l1, ... , ln) и R = (r1, ... , rn) по следующему правилу: li равно номеру левого потомка вершины дерева D, которая получила номер i. Если вершина с номером i не имеет такого потомка, то li = 0. Значение ri определяется аналогично, но для правого потомка вершины с номером i.
Например, корневое дерево на рис. 5.16 представляется массивами
L = (2, 8, 7, 0, 0, 0, 0, 4, 0) и
R = (3, 5, 9, 0, 0, 0, 0, 6, 0).
1
2 3
8 5 7 9
4 6
Рис. 5.16
Для графов, являющихся деревьями, справедлив следующий простой критерий.
Теорема 5.4
Неориентированный связный граф без петель G = (V, U) является деревом тогда и только тогда, когда |V| = |U| + 1.
Доказательство
Необходимость. ( ) Пусть G = (V, U) дерево. Покажем, что |V| = |U| + 1. Рассмотрим некоторое корневое представление G.
К этому графу, пока это возможно, применяется следующее преобразование: выбирается произвольная висячая вершина и удаляется из графа вместе с ведущим в эту вершину ребром.
Очевидно, что через конечное число выполнений приведенного преобразования от графа G останется только корневая вершина.
Поскольку число удаленных при этом вершин равно числу удаленных ребер и одна вершина графа G осталась, то |V| = |U|+1.
Достаточность. ( ) Пусть G = (V, U) неориентированный связный граф без петель, для которого |V| = |U| + 1. Покажем, что G это дерево.
Предположим противное: G не является деревом. Следовательно, в G имеются циклические ребра.
Выполним процедуру последовательного размыкания циклов в G, не нарушающего связности этого графа. Она основана на следующем элементарном действии: выбирается произвольный элементпрный цикл в G, длина которого не меньше чем 3, после чего из G удаляется любое ребро этого цикла.
Указанное действие повторяется до тех пор, пока в получаемых связных графах имеются циклические ребра.
Заданное преобразование графа заканчивается за конечное время и полученный в результате граф является связным.
Обозначим этот граф как G* = (V, U*). Поскольку G* не содержит циклических ребер, то он является деревом.
Поэтому из доказательства необходимости следует справедливость равенства: |V| = |U*| + 1.
Последнее противоречит начальному предположению о том, что |V| = |U| + 1, поскольку по построению графа G* должно выполняться неравенство: |U*| < |U|.
Полученное противоречие означает, что G не может содержать циклических ребер и является деревом.
Доказательство окончено.