« Предыдущий вопрос
Понятие графа. Способы представления графа

Граф – пара G = (V,E), где V – множество объектов произвольной природы, называемых вершинами,

Загрузка
Скачать Получить на телефон
например +79131234567

txt fb2 ePub html

на телефон придет ссылка на файл выбранного формата

Что это

Шпаргалки на телефон — незаменимая вещь при сдаче экзаменов, подготовке к контрольным работам и т.д. Благодаря нашему сервису вы получаете возможность скачать на телефон шпаргалки по информационным технологиям. Все шпаргалки представлены в популярных форматах fb2, txt, ePub , html, а также существует версия java шпаргалки в виде удобного приложения для мобильного телефона, которые можно скачать за символическую плату. Достаточно скачать шпаргалки по информационным технологиям — и никакой экзамен вам не страшен!

Сообщество

Не нашли что искали?

Если вам нужен индивидуальный подбор или работа на заказа — воспользуйтесь этой формой.

Следующий вопрос »
Объектный тип в Pascal Понятие объекта, его описание и использование

Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:

Различные представления графа


Для реализации графа в виде списка инцидентности можно использовать следующий тип:


Type List = ^S;


S = record;


inf: Byte;


next: List;


end;


Тогда граф задается следующим образом:


Var Gr: array[1..n] of List;


Теперь обратимся к процедуре обхода графа. Это вспомогательный алгоритм, который позволяет просмотреть все вершины графа, проанализировать все информационные поля. Если рассматривать обход графа в глубину, то существуют два типа алгоритмов: рекурсивный и нерекурсивный.


На языке Pascal процедура обхода в глубину будет выглядеть следующим образом:


Procedure Obhod(gr: Graph; k: Byte);


Var g: Graph; l: List;


Begin


nov[k]:= false;


g:= gr;


While g^.inf <> k do


g:= g^.next;


l:= g^.smeg;


While l <> nil do begin


If nov[l^.inf] then Obhod(gr, l^.inf);


l:= l^.next;


End;


End;


Представление графа списком списков


Граф можно определить с помощью списка списков следующим образом:


Type List = ^Tlist;


Tlist = record


inf: Byte;


next: List;


end;


Graph = ^TGpaph;


TGpaph = record


inf: Byte;


smeg: List;


next: Graph;


end;


При обходе графа в ширину мы выбираем произвольную вершину и просматриваем сразу все вершины, смежные с ней.


Приведем процедуру обхода графа в ширину на псевдокоде:


Procedure Obhod2(v);


Begin


queue = O;


queue <= v;


nov[v] = False;


While queue <> O do


Begin


p <= queue;


For u in spisok(p) do


If nov[u] then


Begin


nov[u]:= False;


queue <= u;


End;


End;


End;