| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Помогите С поиском в Глубину!!!! |
| Автор: Banderas 5.6.2005, 23:27 |
| Ребята, я в програмировании вобще даун! А курсовую нужно было сдать еще две недели назад. В програме приведеной здесь http://forum.vingrad.ru/index.php?showtopic=38605 вобще ничего не понял, програма компилируется, запускается и стоит, что это значит? Кто нибудь может помочь - написать полную програму, выполняющую поиск в глубину, которая читает из файла данные, обрабатывает ихи и выводит на экран результат. Желательно см коминтариями, что бы я хоть что то понял. Помогите кому нетрудно!!!!! Заранее благодорен! |
| Автор: ~FoX~ 6.6.2005, 09:53 |
| Ты прогу компили с параметром ака c:\MyGrap.txt, годе MyGrap.txt - файл с описанием графа. Ну, а что конкретно тебе не ясно то? Задавай вопросы, будем разбираться. Алгоритм поиска в глубину знаешь? Вот и программь, если что не так, пости сюда будем разбираться. А если тебе нудно от и до прогу накотать, так это в раздел Работа и за денежку. СУВ. |
| Автор: Fedor 6.6.2005, 16:09 | ||
не компили, а запускай. ;) |
| Автор: Banderas 6.6.2005, 23:05 |
| Ребята, говорю же даун в програмировании! |
| Автор: ~FoX~ 7.6.2005, 10:02 |
| Вобщем так: В поиске в глубину мы сначала перебираем все вершины по одному пути, пока не будет достигнута максимальная глубина (глубина вершины равна единице плюс глубина наиболее близкой родительской вершины), затем рассматриваются альтернативные пути той же или меньшей глубины, которые отличаются от него лишь последним шагом, после чего рассматриваются пути, отмечающимися последними двумя шагами, и т.д. Для определения обработа на ли вершина мы используем флаги (в алгоритме приведенном здесь мы используем цвета (белый - если вершина не тронута ни разу, серый если она обработана не до конца и черный если она обработана до конца)). В конечном итоге мы получаем дерево или несколько дервьев. Так же в приведенном алгоритме мы выставляем метки времени, правда они конкретно для обхода не нужны, так что их можно и не ставить, но они могут пригадиться для дольнейшей работы с графом. После обеда накотаю небольшой примерчик рекурсивного поиска в глубину, сейчас просто времени нет. |
| Автор: ~FoX~ 8.6.2005, 08:45 | ||||||
Граф вида:
Т.е. его матрицу смежности мы запишем так: 1.txt:
|
| Автор: Banderas 8.6.2005, 23:13 |
| ОК. Спасибо большое за разъяснения о входящей информации. Стало яснее. Но что же должно выводиться? Результата поиска у нас - построеное дерево. А как это выводиться на экран? В виде списка пройденых вершин по-порядку или как? |
| Автор: ~FoX~ 9.6.2005, 09:01 |
| Banderas Ну это уже сам прикидывай.......хочешь в псевдографике или нормальной рисуй, хочешь выводи списки пройденых вершин, вобщем все от задачи твоей зависит. Вам же должны были рассказывать как курсвую работу оформлять. |
| Автор: Banderas 9.6.2005, 22:56 |
| В том то и дело что курсовик дали по графам, которые мы не то чтобы не проходили, а даже и не слышали об их существовании! А о том, как выводить данные после гобработки вообще речь не заводили! Но все равно спасибо! |
| Автор: ~FoX~ 10.6.2005, 08:10 |
| Banderas Ладно, погоди чутьчуть, накотаяю я тебе процедурку отрисовки графа. Сейчас просто некогда, может после обеда или завтра утром выволю. |
| Автор: Banderas 10.6.2005, 22:57 |
| Буду ждать с нетерпением!! Добавлено @ 23:02 Буду ждать с нетерпением!! |
| Автор: SaS1 20.6.2005, 02:11 | ||||
| У меня тоже сть такой алгоритм! Даже два!!! (рекурсивный и нерекурсивный) Входные данные - списки инциденции, т.е перечисляешь все вершины и все вершины с кот они связаны для вышепривед примера: 1 2 3 2 1 4 5 3 1 6 7 4 2 5 2 6 3 7 3 прога выводит список вершин через которые прога проходит при поиске. 1 2 4 5 3 6 7 (по-моему так) Это нерек код:
А это рекурсивный код:
Там могут быть лишние переменные описаны:( |