Vertex:array[1..50] of PtrVer; {масив суміжних вершин }
k, {КІЛЬКІСТЬ суміжних вершин }
number:integer; {номер вершини }
mark: boolean; {ознака відвідування вершини }
end;
pelem = ^TElem; {тип покажчика на елемент черги }
telem = record {тип елемента черги }
PVer: PtrVer; {покажчик на поточну вершину }
PFrom : PElem; {покажчик на попередню вершину }
Prev, {покажчик на попередній елемент черги }
Next:PElem; {покажчик на наступний елемент черги }
end;
Var pBeg,pEnd, {покажчики на початок і кінець черги }
PCur:PElem; {покажчик на поточний елемент черги }
f:text; {текстовий файл зі списком суміжності }
key:char; {символ вибраної користувачем дії }
start, {номер початкової вершини обходу графу}
finish:integer; {номер кінцевої вершини обходу }
a:array[1..50] of PtrVer; {масив покажчиків на вершини графу }
n: integer; {кількість вершин графу }
{======== встановлення зв'язків між вершинами графу ========}
procedure LinkVertex(var v,u:PtrVer);
{v.u - покажчики на вершини, що зв'язуються}
begin
{включити u в список суміжності v}
inc(v^.k); v^.vertex[v^.k]:=u;
{включити v у список суміжності u}
inc(u^.k); u^.vertex[u^.k]:=v;
end;
{===========- ініціалізація графу з файла ==================}
procedure Init;
var i, {параметр циклу }
iv,iu:integer; {номери суміжних вершин }
Ver:PtrVer; {покажчик на вершину графу }
begin
assign(f,'t.dat');
reset(f); {відкрити файл списку суміжних вершин}
readln(f,n); {зчитати кількість вершин графу }
for i:=1 to n do {створити масив покажчиків на }
begin {вершини графу }
new(Ver); {виділити пам'ять для покажчика }
Ver^.number:=i; {визначити номер вершини }
Ver^.k:=0; {задати кількість суміжних вершин }
a[i]:=Ver; {записати покажчик на вершину в масив }
end;
while not eof(f) do {поки не досягнуто кінця файла }
begin
readln(f, iv, iu); {читати номери суміжних вершин }
LinkVertex(a[iv], a[iu]); {зв'язати вершини }
end;
close(f); {закрити файл }
end;
{=============== додавання елемента до черги ==========================}
procedure AddList(v:PtrVer; q:pelem);
{v - покажчик на вершину, що додається до черги;
q - покажчик на попередній елемент черги}
