Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретка. Шпоры по дискретной математике.doc
Скачиваний:
138
Добавлен:
22.09.2019
Размер:
1.29 Mб
Скачать

35. Упорядоченные и бинарные деревья. Соответствия между ними.

Определим по индукции понятие упорядоченного дерева:

  1. пустое множество и список (a), где a – некоторый элемент, является упорядоченным деревом;

  2. если T1, T2,…, Tn – непустые упорядоченные деревья, a – некоторый новый элемент, то список T=(a, T1,…,Tn) образует упорядоченное дерево. При этом элемент a называется корнем упорядоченного дерева T;

  3. любое упорядоченное дерево строится в соответствии с пп. 1 и 2.

Если T1,…,Tn – упорядоченные деревья, то список (T1,…,Tn) называется упорядоченным лесом.

Для заданного упорядоченного дерева T определим множество S(T) его упорядоченных поддеревьев:

- если , то

- если T=(a), то S(T)={(a)}

- если T=(a,T1,…,Tn), то

Непустое упорядоченное дерево Т может интерпретироваться в виде системы пронумерованных непустых множеств, каждое из которых взаимно однозначно соответствует упорядоченному поддереву из S(T) так, что:

  1. если T – поддерево упорядоченного дерева T’’; , то для соответствующих множеств X и X’’ выполняется включение

  2. если T не является поддеревом упорядоченного дерева T’’; , соответствующие множества не пересекаются.

Упорядоченное дерево может также интерпретироваться в виде уступчатого списка, который обычно используется в оглавлениях. Любая иерархическая классификационная схема интерпретируется некоторым упорядоченным деревом. Частным случаем упорядоченного дерева является бинарное дерево. Определение понятия бинарного дерева повторяет определение для упорядоченного дерева с ограничением в п.2. Любой упорядоченный лес взаимно однозначно соответствует некоторому бинарному дереву.

Опишем алгоритм преобразования упорядоченного леса T=(T1,…,Tn) в бинарное дерево B(T):

  1. Если n=0,

  2. Если n>0, то корнем бинарного дерева B(T) является корень упорядоченного дерева T1, левое поддерево дерева B(T) – бинарное дерево B(T11,…,T1m), где T1=((a1),T11,…,T1m), правое поддерево дерева B(T) – бинарное дерево B(T2,…,Tn).

36. Фундаментальные циклы, разрезы. Матрицы фундаментальных циклов, разрезов.

Пусть G=<M,R> - неорграф, имеющий n вершин, m ребер и c компонент связности, Т – остов графа G, имеет υ*(G)=n-c ветвей и υ(G)=m-n+c хорд. Если к лесу T добавить произвольную хорду υi, то в полученном графе найдется ровно один цикл Ci, который называется фундаментальным циклом графа G относительно хорды υi и остова T. Множество {C1,..,Cm-n+c} называется фундаментальным множеством циклов. Мощность этого множества равна цикломатическому числу υ(G)=m-n+c.

Фундаментальное множество циклов можно задать с помощью матрицы фундаментальных циклов С=(aij), где . Т.к. каждый фундаментальный цикл содержит ровно одну хорду, то матрица С=(С1|C2), где С1 – единичная матрица порядка υ(G).

Пусть G=<M,R> - неорграф, m={M1,M2} – разбиение множества М. Разрезом графа G по разбиению m называется множество всех ребер, соединяющих вершины из M1 c вершинными из M2. В связном графе любой разрез непуст.

Непустой разрез К неорграфа G называется простым разрезом или коциклом, если любое непустое собственное подмножество не является разрезом ни по какому разбиению. Т.е. из К нельзя удалить ни одно ребро так, чтобы полученное множество было непустым разрезом.

Теорема: В связном неорграфе остовное дерево имеет по крайней мере одно общее ребро с любым из разрезов графа.

Теорема: В связном неорграфе любой цикл имеет любым разрезом четное число общих ребер.

Рассмотрим неорграф G с остовом Т. Пусть u1,…,un-c – ветви остова Т. Удаляя из Т произвольную ветвь ui получаем лес с (с+1) компонентой связности, т.е. каждое ребро ui является разрезом остова Т по некоторому разбиению {М12}. В графе G могут найтись еще ребра vi1,…,vij (хорды Т), также являющиеся разрезами по {M1,M2}. Множество Ki={ui,vi1,…,vij} образует простой разрез, который называется фундаментальным разрезом графа G относительно ветви ui остова Т. Множество {K1,…,Kn-c} называется фундаментальным множество коциклов. Мощность этого множества равна корангу υ*(G)=n-c. Фундаментальное множество коциклов можно задать матрицей K=(bij), где . Поскольку каждый фундаментальный разрез содержит одну ветвь, то матрица К=(K1|K2), где К2 – единичная матрица порядка υ*(G).