Помогите разобраться в кодею
Использовал готовый исходник, потому что поиск в графе для меня новое. Прокомментируйте пожалуйста строки, чтобы я понял смысл всего алгоритма и команд.
Program Graphi;
type List = ^NodeList;
NodeList = record
inf: byte;
next: List;
end;
Graph = ^NodeGraph;
NodeGraph = record
inf: byte;
ListSm: List;
next: Graph;
end;
var G,cur: Graph;
cur1: List;
tmp,i,NN,KK: integer;
mas: array [0..50] of integer;
Procedure Create(N: integer); {N - kol-vo vershin grapha}
var i,k: integer;
begin
for i:= 1 to N do
begin
new(cur);
cur^.inf:=i;
cur^.ListSm:=nil;
cur^.next:=G;
G:=cur;
Writeln('Vv. nomera sm. vershin s ',i,' (0 - konec vvoda)');
readln(k);
while k>0 do
begin
new(cur1);
cur1^.inf:=k;
cur1^.next:=cur^.ListSm;
cur^.ListSm:=cur1;
Readln(k);
end;
end;
end;
Procedure obhod(G: Graph; k: integer);
var cur: Graph;
cur1: List;
i: integer;
begin
cur:= G;
while Cur^.inf<>k do
cur:=cur^.next;
cur1:=cur^.ListSm;
while Cur1<>nil do
begin
if cur1^.inf=KK then
begin
Write('Way: ');
for i:=0 to tmp-1 do
Write(mas[i],' ');
Writeln(KK);
Readln;
halt;
end;
mas[tmp]:=cur1^.inf;
Inc(tmp);
Obhod(G,cur1^.inf);
cur1:=cur1^.next;
end;
end;
begin
G:=nil;
Write('Vv. kol-vo vershin grapha : ');
Read(tmp);
Create(tmp);
Write('Vv N : ');
Readln(NN);
Write('Vv K : ');
Readln(KK);
tmp:=1;
mas[0]:=NN;
Obhod(G,NN);
Writeln('Puti net');
Readln;
end.