Показать сообщение отдельно
  #1  
Старый 25.02.2016, 00:06
Graf16 Graf16 вне форума
Прохожий
 
Регистрация: 17.01.2016
Сообщения: 16
Версия Delphi: Delphi 7
Репутация: 10
Вопрос Поиск в глубину

помогите исправить код

реализую нерекурсивный поиск в глубину по матрице смежности. добавление вершины в стек и соответственно путь от одной к другой вершине показываю на поле image при каждой нажатии кнопки для выполнения по шагам. когда обход завершен на экран выводится сообщение "окончено"

видимо,не правильно реализовал алгоритм, так как выполняется не для всех графов
например, имея следующую матрицу смежности(в файле она записана по-другому,тут для лучшего представления)
8
____________
1 |0 1 0 0 0 0 0 0
2 |1 0 0 0 1 0 0 1
3 |0 0 0 1 0 1 0 0
4 |0 0 1 0 1 0 0 0
5 |0 1 0 1 0 1 0 1
6 |0 0 1 0 1 0 0 0
7 |0 0 0 0 0 0 0 1
8 |0 1 0 0 1 0 1 0

если начинать обход с вершины 1, то он получается такой: 1 2 5 4 3 6 (не выполнен возврат к 5 вершине,вершины 8 и 7 не просмотрены)

если начинать обход с вершины 3, то он получается такой: 3 4 3 6 5 2 8 7 (порядок неправильный, к вершине 1 не пришли)

если выполняем возврат на предыдущую вершину,то это надо показать другим цветом,пока что тоже не знаю как
Вложения
Тип файла: txt вгл.txt (2.1 Кбайт, 1 просмотров)
Ответить с цитированием