![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.10.2010
Сообщений: 17
|
![]()
Нужно было написать программу для нахождения гамильтонова цикла в графе из n вершин.
Я пока пытался писать поиск гамильтонова пути в графе, в котором заведомо есть гамильтонов цикл. Но для n=1 и n=2 программа выдаёт не то что нужно. А для n=3 вообще иногда с переполнением стека вылетает. Алгоритм пытался реализовать такой: Запрашивается количество вершин. Запрашивается матрица смежности. В функцию передаётся первая точка. Печатается сформированный функцией путь в массиве "c". В функции: если точка уже используется (содержится в пути), ретёрн фэлс если точка - тупик (не имеет смежных не использованных) и не последняя оставшаяся - ретёрн фэлс если точка - тупик (не имеет смежных не использованных) и последняя - добавляем её в путь и ретёрн труЪ добавляем точку в путь перебираем циклом смежные с ней вершины: для каждой из них вызываем эту же функцию: если она возвращает труЪ то ретёрн труЪ ну, а нет так нет -передаём ей следующую подходящую точку Код:
Последний раз редактировалось SrgGld; 10.12.2010 в 07:57. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Цикл | SsdD | Помощь студентам | 4 | 01.05.2010 23:02 |
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? | Anarki | Общие вопросы C/C++ | 3 | 13.11.2009 19:23 |
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) | Mr.User | Помощь студентам | 9 | 23.11.2007 01:34 |