Шаг 83.
Представления графов. Структуры Вирта

    На этом шаге мы рассмотрим представление графов с помощью структуры Вирта.

    Используем для представления графа в памяти ЭВМ подход Никлауса Вирта [1, с.211-219], который предполагает построение динамической структуры со многими связями. Вершины графа представляются линейным списком, состоящим из заголовочных узлов. Каждый заголовочный узел содержит четыре поля.

    Если указатель P указывает на заголовочный узел, представляющий вершину Q графа, то:

    Каждый узел списка смежности содержит два поля: Id и Next, причем если Q указывает на дуговой узел, представляющий дугу (A,B), то:

    Каждый дуговой узел содержится в единственном списке смежности, представляющем все дуги, выходящие из данной вершины графа.

    Вывод. Каждый заголовочный узел содержит поля Key, Count и два указателя:

    Каждый дуговой узел содержит два указателя:

    На рисунке показан ориентированный граф и его представление с помощью структуры Вирта (символ N обозначает NULL):


Рис.1. Представление графа с помощью структуры Вирта

   


(1)Вирт H. Алгоритмы + структуры данных = программы. - М.: Мир, 1985. - 406 с.

    На следующем шаге мы рассмотрим реализацию простейших операций над графом, представленным структурой Вирта.




Предыдущий шаг Содержание Следующий шаг