вівторок, 2 жовтня 2018 р.

Практична робота 2


Пошук в глибину (паскаль) - умова практичної роботи

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.

Немає коментарів:

Дописати коментар