Пошук в глибину (паскаль) - умова практичної роботи
uses crt;const n=11; start=1;
var i,j:integer;
visited: array[1..n] of boolean;
const graph: array[1..n,1..n] of byte=
((0,1,0,0,0,1,0,0,0,0,0),(1,0,1,0,1,0,0,0,1,1,0), (0,1,0,1,1,0,0,0,0,0,0),(0,0,1,0,1,0,0,0,0,0,0),(0,1,1,1,0,0,0,0,0,0,0),
(1,0,0,0,0,0,1,1,0,0,0),(0,0,0,0,0,1,0,1,0,0,0),(0,0,0,0,0,1,1,0,0,0,0),(0,1,0,0,0,0,0,0,0,1,1),(0,1,0,0,0,0,0,0,1,0,0),(0,0,0,0,0,0,0,0,1,1,0));
{Пошук в глибину}
procedure DFS(st:integer);
var r:integer;
begin
write(st:2);
visited[st]:=true;
for r:=1 to n do
if (graph[st,r]<>0) and (not visited[r]) then DFS(r);
end;
begin clrscr;
writeln ('Матриця суміжності:');
for i:=1 to n do
begin
visited[i]:=false; {Починаємо з того, що вершина не відвідана}
for j:=1 to n do
write(graph[i,j],'');
writeln;
end;
write('Стартова вершина >> '); writeln(start);
writeln('Результат обходу'); DFS(start); {Виклик процедури}
end.
Немає коментарів:
Дописати коментар