Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Алгоритмы на графах / presentation / LISTS
.PAS{ graphs by boris }
{ adjacency lists }
{ ЇаҐ¤бв ў«ҐЁҐ Ја д ў ўЁ¤Ґ бЇЁбЄ®ў ᬥ¦ле ўҐаиЁ }
const
maxn = 250; { ¬ Єб. Є®«-ў® ўаҐиЁ }
type { вЁЇл ¤«п а Ў®вл б® бЇЁбЄ®¬ }
pnode = ^tnode;
tnode = record
v: word;
next: pnode;
end;
var
a: array [1..maxn] of pnode; { бЇЁбЄЁ ᬥ¦ле ўҐаиЁ }
n: longint; { Є®«-ў® ॡҐа }
{insert_vertex: ўбв ўЁвм ў Ја д ॡ஠Ё§ v ў w }
procedure insert_vertex(v, w: word);
var
p: pnode;
begin
new(p); { ᮧ¤ Ґ¬ 㧥« }
p^.v := w;
p^.next := a[v]; { ўбв ў«пҐ¬ 㧥« }
a[v] := p;
end;
{init: ЁЁжЁ «Ё§ жЁп Ё ўў®¤ ¤ ле }
procedure init;
var
i, x, y, nn: longint;
begin
for i := 1 to maxn do
a[i] := nil;
assign(input, 'graph.in');
reset(input);
read(n);
read(nn);
for i := 1 to nn do
begin
read(x, y);
insert_vertex(x, y);
insert_vertex(y, x); { Ґб«Ё Ґ®аЁҐвЁа®ў л© Ја д }
end;
end;
{ print: ЇҐз в Ґв бЇЁбЄЁ ᬥ¦ле ўҐаиЁ }
procedure print;
var
i: longint;
p: pnode;
begin
writeln;
writeln('number of vertex : ', n);
writeln('adjacency lists');
for i := 1 to n do { ЇҐаҐЎЁа Ґ¬ ўбҐ ўҐаиЁл }
begin
write('[', i, '] ');
p := a[i]; { ЇҐаҐЎҐа Ґ¬ ўбҐ ўҐаиЁл, }
while p <> nil do { ᬥ¦лҐ б i-®© ўҐаиЁ®© }
begin
write(p^.v, ' ');
p := p^.next; { ЎҐаҐ¬ б«Ґ¤гойго ўҐаиЁг бЇЁбЄ }
end;
writeln;
end;
end;
begin
init;
print;
end.
Соседние файлы в папке presentation