![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
Тогда вопрос, где рациональнее будет использовать рекурсию. В деревьях? -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
не понял, тебе нужен шаблонный двусвязный список или общий шаблонный интерфейс, который может быть реализован двусвязным списком или чем-нить еще?
Добавлено @ 13:40
Это почти всегда нерационально. Но есть задачи (обход дерева, быстрая сортировка и т.д.) где использовать рекурсию проще, нагляднее, короче. Если рекурсивный алгоритм реализован, но неэффективен, его всегда можно переписать циклами. Добавлено @ 13:42 почти все алгоритмы типа "разделяй и властвуй" просто и красиво реализуются рекурсией Это сообщение отредактировал(а) baldina - 8.5.2008, 13:58 |
|||
|
||||
Любитель |
|
||||||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Для рекурсивных структур (те же деревья), для алгоритмов с возвратом и пр. рекурсивная реализация выглядит проще. И для начала вполне сойдёт. Если будут проблемы с проивзодительностью (что в больших проектах лучше анализировать, конечно, нормальным профайлером) - любую рекурсию можно развернуть с помощью стека (иногда лучше использовать очередь, но суть та же). Добавлено через 12 минут и 40 секунд Есть понятие tail recursion ("хвостовая" рекурсия) - когда рекурсивный вызов происхоодит в самом конце. Типа:
Точнее даже не обязательно именно в конце - важно, что результаты рекурсивного вызова не сказываются на операторах, следующих после рекурсивного вызова:
"Хвостовая" рекурсия всегда разворачивается в обычный цикл (без использования стека). |
||||||
|
|||||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Нет, я не про то
![]() |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
r18Romik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 13.2.2008 Где: Пермь Репутация: нет Всего: нет |
Люди всё таки кто нибудь может помочь...со структурой???
Читать выше..... |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Я тебе уже написал достаточно. Впихнуть список вместо вектора просто невозможно, так как очень сильно отличаются способы хранения и доступа к элементам. Поэтому надо писать полностью заново, тем более, что это делается довольно легко. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |