Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2010, 20:05   #1
amsask
Новичок
Джуниор
 
Регистрация: 29.04.2010
Сообщений: 2
Вопрос Топологическая сортировка.

Дан орграф. Выполнить топологическую сортировку поиском в глубину.
Если задача не имеет решения, вывести сообщение "-1".

Сортировку я написал
Код:
var
  M: Array[1..100, 1..100] of Byte; // матрица смежности
  status: Array[1..100] of Byte;
  S: Array[1..100] of Integer;
  N, top: Integer;

// поиск в глубину
procedure DFS(const u: Integer);
var
  v: Integer;
begin
  status[u] := 1;
  for v := 1 to N do
    if (M[u][v] <> 0) and (status[v] = 0) then
      DFS(v);
  Inc(top);
  S[top] := u;
end;

procedure Topological_Sort;
var
  u, v, i, j: Integer;
begin
  top := 0;
  for u := 1 to N do
    status[u] := 0;
  for u := 1 to N do
    if status[u] = 0 then
      DFS(u);
end;
В массиве S записан результат сортировки.

Работает программа правильно.

Вопрос в том, куда нужно что дописать, чтобы определить имеет ли задача решение, или не имеет.
amsask вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57
Сортировка методом линейного выбора и "быстрая" сортировка Карол Помощь студентам 4 27.09.2009 19:52
Сортировка файлов в Explorer vs сортировка в Delphi mutabor Общие вопросы Delphi 11 04.09.2009 14:32