Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
01.05.2014
Размер:
1.71 Кб
Скачать
{ 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