|
45 / 30 / 11
Регистрация: 31.10.2009
Сообщений: 200
|
|||||||||||
"Рекурсивная функция" (Обход бинарного дерева)08.03.2010, 10:40. Показов 27076. Ответов 31
Метки нет (Все метки)
Привет всем, встретился с такой рекурсивной ф-ей, которая обходит бинарное дерево и выводит его на экран. Не могу понять как она работает
Объясните пожалуйста принцип работы такой функции. Заранее благодарен ) Добавлено через 1 минуту вот сама структура:
0
|
|||||||||||
| 08.03.2010, 10:40 | |
|
Ответы с готовыми решениями:
31
|
|
paladin
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
|
|||
| 10.03.2010, 11:54 | |||
|
Ну что поделать. Рекурсия в том виде, в котором она реализована (через стек) - не очень замечательная вещь. Динамическое выделение памяти - достаточно простое решение, не требующее колоссальных затрат времени и сил.
1
|
|||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
||
| 10.03.2010, 12:15 | ||
Я где то на форуме видел: создавал кто то массив в 100 000 элементов я точно не помню, может больше( на один нуль), и компилятор писал Stack Overlow. Тип элементов был int, пару гигов этот массив не весит точно.
1
|
||
|
Заблокирован
|
|
| 10.03.2010, 12:36 | |
|
Всем спасибо, один вопрос, что лучше использовать:
То что предложил Genius Ignat или использовать рекурсию, желательно с убедительными аргументами.
0
|
|
|
paladin
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
|
|
| 10.03.2010, 12:42 | |
|
Если глубина рекурсии мала - ее и использовать (для нескольких интов, передаваемых в рекурсивную функцию глубина порядка 10^3 - 10^4, не больше). В противном случае реализовывать хранение промежуточных значений в динамическом стеке.
2
|
|
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||
| 10.03.2010, 13:15 | ||
|
0
|
||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|||||||||||
| 10.03.2010, 14:05 | |||||||||||
Сообщение было отмечено как решение
Решение
Вот думал думал, как автору пояснить что такое рекурсия, и сделал
функцию разворота массива: здесь явно показана работа со стеком, пример факториала я посчитал, что лучше его не показывать. //--------------------------------------------------------------------
Добавлено через 28 минут
5
|
|||||||||||
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 10.03.2010, 14:10 | |
|
2
|
|
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
||||||
| 10.03.2010, 14:18 | ||||||
|
А вот ещё пример вывод нескольких значений в обратном поступлению
порядке, за счет стека и параметров.
2
|
||||||
|
paladin
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
|
||
| 10.03.2010, 14:21 | ||
|
2
|
||
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||
| 10.03.2010, 14:59 | ||
Сообщение было отмечено как решение
Решение
3
|
||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|||||||||||
| 10.03.2010, 15:28 | |||||||||||
|
Так же используется как я её называю завершающая рекурсия которая предназначения для
обмена с функциями через возвращающее значение, и не требующая работы с параметрами предыдущей вызванной функций после завершения очередной функции, то есть откат к параметрам назад можно не использовать. Такой тип функций используются допустим в поиске с включением в дереве или просто в поиске в дереве. Пример рекурсивная функция, которая не использует "откатанные назад параметры после завершения очередной самой себя функции".
//Поиск узла рекурсией----------
inline перед рекурсивными функциями можно не ставить, так как inline вызовов не будет.
3
|
|||||||||||
|
Заблокирован
|
|
| 10.03.2010, 15:54 | |
|
Хороший сайт, и объясняют понятнее и лучше чем в учебнике,
В учебнике буквально три строчки о рекурсии, и примера кроме факториала больше нет, вот так. Ещё раз спасибо всем, узнал много нового.
0
|
|
| 10.03.2010, 15:54 | |
|
Обход бинарного дерева Обход бинарного дерева в ширину НЕрекурсивный обход бинарного дерева Как осуществлять обход бинарного дерева? Обход бинарного дерева без рекурсии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|