Kod: Zaznacz cały
program ideone;
uses math, crt;
type wierzch=^elem;
elem= record
klucz:integer;
sasiad:wierzch;
end;
var graf:array[1..10] of wierzch;
poprz:array[1..10] of wierzch;
kolor:array[1..10] of string;
timein:array[1..10] of integer;
timeout:array[1..10] of integer;
i,j:integer;
x:wierzch;
procedure dodaj(var h:wierzch; m:integer);
var
u:wierzch;
begin
new(u);
u^.klucz := m;
u^.sasiad := h;
h := u
end;
procedure dfs (g:wierzch)
begin
new(g);
for i:=1 to 10 do
begin
kolor[i]:='bialy';
poprz[i]:=Nil;
end;
for j:=1 to 10 do
if kolor[j]='bialy' then
dfs-odwiedz(graf[j])
end;
procedure dfs-odwiedz(w:wierzch)
begin
kolor[w]:='szary';
time:=time+1;
timein:=time;
while (w<>Nil) do
if kolor[w]='bialy' then
begin
poprz[w.sasiad]:=w;
dfs-odwiedz(w);
end;
kolor[w]:='czarny';
x^:=w;
time:=time+1;
timeout:=time;
end;
begin
clrscr;
writeln('Wczytaj liczbe wierzcholkow grafu:');
read(n);
for l:=1 to 10 do
begin
dodaj(graf[l]);
wierzch.klucz:=l;
end;
dfs(graf[1]);
readkey;
end.