| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > DFS. Что не правильно? |
| Автор: FireSnake 13.2.2007, 14:25 | ||
| Пишу рекурсивный обход в глубину, но он работает не правильно... не могу понять, почему выгружаясь из рекурсии он в нее не заходит более. Входные данные в первое строке количество вершин и количество ребер (N,E) а далее в Е строках описаны ребра соедин. вершины(граф не ориентирован) 6 6 1 2 2 4 3 4 1 3 1 5 5 6 на этом тесте вершины 5 и 6 оказываются не помеченными в ходе обхода
|
| Автор: MBo 13.2.2007, 16:22 |
| 1. счетчики циклов i сделай локальными переменными 2. проверку наличия 0 в b измени - введи булевский флаг Flag := True; for i:=1 to n do if b[i]=0 then begin Flag := False; Break; end; |
| Автор: FireSnake 13.2.2007, 20:36 | ||
Это кудо, в процедуру Main? Если да то зачем? |
| Автор: MBo 14.2.2007, 07:14 |
| >в процедуру Main? Да > Если да то зачем? По логике. Значение счетчика цикла после его исполнения не определено, и использовать его в корыстных целях нельзя. |
| Автор: FireSnake 14.2.2007, 17:41 |
| MBo, благодарен за помощь, хотя не могу понять почему после выполнения цикла for значения счетчика не определено. Всегда так делал и все было норм. |