Помощь - Поиск - Пользователи - Календарь
Полная версия: блоки графа
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Scorm
Помогите написать программу, находящую все двусвязные компоненты графа. При этом граф должен быть представлен ввиде Списков Смежности или Матрицы Смежности. 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
Если алгоритм знаешь, начинай реализацию и пиши когда проблемы будут. Если не знаешь, ищи smile.gif На английском точно полно (поиск по digraph strongly connected components). Вот первое попавшееся, там нормально описано.
Scorm
Проблема в том,что я алгор-ма знаю суть, что там как там и тд, косяк лишь с реализацией: меня просто убивает работа с записью, две недели бился, а норм. сделать не смог- одни косяки mad.gif Немогу нормально реализовать поиск в списке смежности, и как привильно добавить ребро, если оно прямое, в стек Т... blink.gif

Лишь это подскажите как сделать по-человечески, а потом я уж сам как нибудь, plzZ!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.