
uses crt;
const
max=100;
var
Matrix:array [1..max,1..max] of byte;
i,j,n,r,time,k:integer;
num,ftr,Q:array [1..max] of integer;
tn,tk:array[1..max] of integer;
procedure dfs(r:integer);
var
i,j,k,p:integer;
begin
time:=time+1;
tn[i]:=time;
num [i]:=k;
k:=k+1;
for i:=1 to n do
begin
if num[i]=0 then
begin
ftr[i]:=i;
dfs(j);
end;
time:=time+1;
tk[i]:=time
end;
end;
begin
clrscr;
writeln('----Поиск в глубину-----');
write('Введите количество вершин графа:');
readln(n);
writeln('Заполнение матрицы смежности');
for i:=1 to n do
for j:=1 to n do
begin
Write('(',i,',',j,')=');
read(Matrix[i,j]);
if Matrix[i,j] <> 0 then Matrix[i,j]:=1;
end;
//вывод матрицы смежностиж;
writeln('Матрица смежности');
for i:=1 to n do
begin
for j:=1 to n do
write(Matrix[i,j],' ');
writeln;
end;
writeln;
//процедура bfs;
writeln('Результат dfs');
for i:=1 to n do
begin
num[i]:=0;
ftr[i]:=0;
time:=0;
k:=1;
end;
for r:=1 to n do
if num[r]=0 then dfs®;
//вывод массивов num ftr;
write('num: ');
for i:=1 to n do
write(num[i],' ');
writeln;
write('ftr:');
for i:=1 to n do
write(ftr[i],' ');
writeln;
readln;
end.
Псевдокод кинула по которому написано
Сообщение отредактировано: Юлия92 -