Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ блоки графа

Автор: Scorm 18.03.2007 0:48

Помогите написать программу, находящую все двусвязные компоненты графа. При этом граф должен быть представлен ввиде Списков Смежности или Матрицы Смежности. Xелп, plzZ!

Есть собственные наработки(пока мало)((см.код)), осталось только двусвязные компоненты отыскать...

Код

uses crt;
const n=4;
type stek=^node;
     node=record
             key:integer;
             next:stek;
     end;
     massiv=array[1..n] of stek;
var spsm:massiv;
    i,j:integer;
    v,sm:integer;
    q:stek;

BEGIN
clrscr;
for i:=1 to n do
  begin
     q:=nil;
     writeln('Введите все смежные вершины вершине ',i);
     readln(sm);
     while sm>0 do begin
        new(spsm[i]);
        spsm[i]^.key:=sm;
        spsm[i]^.next:=q;
        q:=spsm[i];
        readln(sm);
                    end;
  end;
for i:=1 to n do
begin
    write(i,': ');
    while spsm[i]<>nil do begin
                    write(spsm[i]^.key,' ');
                    spsm[i]:=spsm[i]^.next;
                    end;
    writeln;
end;
readln;
END.


Автор: Michael_Rybak 18.03.2007 15:27

Если алгоритм знаешь, начинай реализацию и пиши когда проблемы будут. Если не знаешь, ищи smile.gif На английском точно полно (поиск по digraph strongly connected components). http://www.eecs.wsu.edu/~cli/index_files/SCCnof.pdf первое попавшееся, там нормально описано.

Автор: Scorm 19.03.2007 11:59

Проблема в том,что я алгор-ма знаю суть, что там как там и тд, косяк лишь с реализацией: меня просто убивает работа с записью, две недели бился, а норм. сделать не смог- одни косяки mad.gif Немогу нормально реализовать поиск в списке смежности, и как привильно добавить ребро, если оно прямое, в стек Т... blink.gif

Лишь это подскажите как сделать по-человечески, а потом я уж сам как нибудь, plzZ!