Соединим a0 и a1 ребром, попадаем в т. 47, по т. 47 связанный и все вершины четные. Удаляя ребро получим нечетные а0 и а1.
Алгоритм построения Эйлеровой цепи.
Списки инцидентности.
Каждой вершине сопоставим список, в этом списке все вершины смежные с данным ребром.
[v] VàV1àV2à…
Для изолированной вершины пустой список.
Граф – это массив списков.
[V1] à Для неориентированного графа ребро (V1,V2) графа вершина в V1 и
[V2] à эта же вершина V2 может быть список списков.
….
[Vn] à
Из произвольной вершины идем к смежной и это ребро удаляем и.т.д. т.к. все вершины четные, то мы вернемся в V0 и заносим вершину в маршрут, а из стека удаляем, переходим к следующей вершине в стеке.
Списки инцидентности
S1 SE={Æ} сюда будем заносить вершины, заносим все подряд.
Stack={V}
S2 If Stack – пуст Stop Граф имеет Эйлерову цепь
S3 else V:=top(stack) – Вытаскиваем верхний элемент
If (SI[V]¹0) U:=SI[V]; Список инцидентности, не пуст, то вытаскиваем элемент
Del(U,V) в списке для U удаляем V, а в списке для V удаляем U и заносим в стек
Если SI[V]=0, то Và SE{} и V удаляем из стека.
Пример:
4
3
5
1 6
8
2
7 9
Список Инцидентности
1à2à3
2à3à7à8
3à1à2à4à5
4à3à5
5à3à4à6à8
6à5à7à8à9
7à2à6à8à9
8à2à5à6à7
9à6à7
Stack 1 2,1 3,2,1 1X,3,2,1 4,3,2,1 5,4,3,2,1 3X,5,4,3,2,1 6,5,4,3,2,1
SE 0 0 0 1 1 1 1,3 1,3
Stack 7,6,5,4,3,2,1 2,7,6,5,4,3,2,1 8,2,7,6,5,4,3,2,1 5X,8,2,7,6,5,4,3,2,1
SE 1,3 1,3 1,3 1,3,5
Stack 6,8,2,7,6,5,4,3,2,1 9,6,8,2,7,6,5,4,3,2,1 7,9,6,8,2,7,6,5,4,3,2,1
SE 1,3,5 1,3,5 1,3,5
Удаляем весь стек SE 1,3,5,8,7,9,6,8,2,7,6,5,4,3,2,1
Деревья
Определение: Связанный граф не содержащий циклов называется деревом.
Просто граф не содержащий циклов, называется лесом.
Дерево Лес
Теорема: 48
Граф является деревом тогда и только тогда, когда между его двумя вершинами существует одна и только одна цепь.
Доказательство:
Граф – дерево, тогда граф связан и две вершины можно соединить цепью, пусть есть две цепи, тогда из них, можно построить цикл (следствие 2, теорема 43) и наоборот.
Теорема: 49
Дерево содержащее не менее двух вершин имеет, по крайней мере 2 концевые вершины (DegV<1).
Доказательство: Рассмотрим максимальную цепь:
a0x1a1x2…xLaL
Докажем, что deg a0 и aL =1
Пусть deg aL>1, тогда из нее есть ребро aL+1, xLaL причем aL+1¹ai, иначе получился бы цикл, это не дерево => максимальная цепь удлиняется, значит deg aL>1, тоже для а0.
Лемма: После удаления из дерева концевой вершины вместе с ребром получается дерево.
Теорема: 50 Дерево с Р вершинами имеет Р-1 ребро.
Доказательство: Индукция по P:
1. P=1 - 0 ребер.
2. Индукционный переход Пусть P<=k верно
Докажем для k+1>=2.
Дерево не более двух вершин или 2 концевые вершины (т. 49) по лемме одну концевую вершину убираем, тогда получим,
Для k вершин - k-1 ребро
+ +
1 1
k+1 вершин - k ребер
Определение: Дерево в графе, которое содержит, все его вершины называется каркасом данного графа (стягивающее дерево, покрывающий граф)
Т.е. ребра, которые надо оставить, чтобы сохранилась связанность.
каркас
Теорема: 51 В связанном графе существует по крайней мере 1 каркас.
Доказательство:
1) Если в связанном графе нет циклов, то это дерево.
2) Если есть циклы, то удаляем любое ребро из цикла, пока не кончиться цикл.
Пример, построения графа в глубину.
{(V,U)} идет в каркас, мы обойдем все вершины и у нас будет каркас( т.к. не будет циклов), мы не возвращаемся обратно в вершину.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.