- •Очередь
- •Двусвязные списки
- •Пример использования стеков: постфиксная, префиксная и инфиксная записи
- •Бинарныедеревья
- •Общие деревья
- •Реализация деревьев
- •Представление графов
- •Задача нахождения кратчайшего пути
- •Нахождение кратчайших путей между парами вершин
- •Транзитивное замыкание
- •Нахождение центра ориентированного графа
- •Обход ориентированных графов
Общие деревья
Термины отец, сын, предок, потомок, уровень, глубинаиспользуются аналогично бинарному дереву. Узлы, имеющие одного отца, называютсябратьями.Степеньузла – число его сыновей. Таким образом, лист имеет степень 0.Упорядоченное дерево – дерево, в котором поддеревья каждого узла образуют упорядоченное множество. Первого сына узла упорядоченного дерева называютстаршимсыном, а последнего –младшим. Упорядоченное множество упорядоченных деревьев называетсялесом.
Реализация деревьев
С помощью массивов записей, где каждый элемент, помимо информационного поля, содержит индекс своего отца. Корень дерева при этом имеет индекс отца, равный нулю. Однако при таком представлении очень сложно находить сыновей.
С помощью указателей, когда каждый узел представляет собой запись с информационным полем и заранее определенным количеством указателей на сыновей. Недостатки: нельзя получить больше сыновей, чем зарезервировано указателей; при резервировании памяти под большое количество указателей неэкономно расходуется память.
С помощью указателей, когда каждый узел представляет собой запись с информационным полем, полем, в котором указано число указателей, непосредственно поля указателей.
С помощью указателей, когда каждый узел представляет собой запись с информационным полем и двумя указателями: на сына и младшего брата. Таким образом, все братья объединяются в линейный список. Указательное поле самого младшего брата может иметь значение NULLили указывать на отца. При таком построении дерева можно говорить, что это бинарное дерево, повернутое на 45о. Такое бинарное дерево может использоваться для представления всего леса, так как указатель на брата корня дерева может содержать адрес корня следующего дерева леса (рис. 9).




Рис. 3. Лес и соответствующее бинарное дерево
Графы
Граф состоит из множества вершин (узлов) и множестваребер (дуг). Каждая дуга в графе указывается парой узлов. Если пары узлов, образующих дугу, упорядочены, что граф называютнаправленнымграфом,ориентированнымграфом или простоорграфом. В противном случае граф являетсяненаправленным.
Узел nназываетсяинцидентнымдуге х, еслиn– один из двух узлов упорядоченной пары, составляющей дугу х. Дуга х при этом инцидентна узлуn.Степень узла – это число дуг, инцидентных узлу.Полустепень захода узла – это число дуг, для которых этот узел является головой стрелки, аполустепень исхода – это число дуг, для которых узелnявляется хвостом стрелки. Узелnназываетсясмежнымс узломm, если существует дуга изmвn.
Г
Рис. 4. Взвешенный
орграф
Путь длиной k от узла а до узлаbопределяется как последовательность изk+1 узловn1,n2, …,nk+1, такая, чтоn1=a,nk+1=bи пары узлов (ni,ni+1) для всехiмежду 1 иkявляются смежными. Путь от узла к самому себе длиной не менее 3 называетсяциклом. Если граф содержит цикл, то он называетсяциклическим, а в противном случае –ациклическимграфом.
