0 / 0 / 0
Регистрация: 23.09.2009
Сообщений: 8
|
|
1 | |
НЕрекурсивный обход бинарного дерева24.09.2009, 12:35. Показов 26523. Ответов 15
уважаемые программисты!
нужно написать алгоритм обхода бинарного дерева без использования рекурсии, а с помощью стека. Проверить на дереве int, но в самом коде испльзовать указатели на функцию - типа что дерево состоит из чего угодно... Кто знает КАК ЭТО ДЕЛАТЬ НА СИ???
0
|
24.09.2009, 12:35 | |
Ответы с готовыми решениями:
15
Нерекурсивный обход дерева Нерекурсивный прямой обход BST дерева Обход бинарного дерева С++ Обход бинарного дерева |
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
|
|
24.09.2009, 15:30 | 2 |
Используйте шаблон и описывайте его как одноноправленный список.
хочешь примеров поисчи в гугл
0
|
0 / 0 / 0
Регистрация: 23.09.2009
Сообщений: 8
|
|
24.09.2009, 15:41 [ТС] | 3 |
как именно сформулировать чтобы искать?
0
|
Псевдо программист
192 / 113 / 37
Регистрация: 19.09.2009
Сообщений: 303
|
|
24.09.2009, 15:44 | 4 |
поищите тут...
http://www.google.com/search?client=opera&rls=ru&q=%D0%B1%D0%B8%D0%BD%D0%B0%D1%80%D0%BD%D0%BE%D0%B5+%D 0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE+%D0%BE%D0%B1%D1%85%D0%BE%D0%B4+%D1%81%D1%82%D 0%B5%D0%BA&sourceid=opera&ie=utf-8&oe=utf-8
0
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
24.09.2009, 20:16 | 5 |
А как с уровнем знаний вообще - xороший, плохой или очень плохой ?
Если плохой, то не хочется расписывать Если хороший, то алгоритм прост: Берется рекурсивный алгоритм обхода дерева. Как известно любое рекурсивное решение заменяется на такое же, но без рекурсии, но с использованием стека или очереди. Поэтому там где в рекурсивном алгоритме идет вызов функции из самой себя нужно просто записать параметры вызова в стек и перейти на начало функции. Если стек стал пуст - значит все закончено. В самом начале нужно положить в стек узел - начало дерева.
0
|
24.09.2009, 20:20 | 6 |
0
|
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297
|
|
24.09.2009, 21:55 | 7 |
Вообще дерево - это связный граф.Если реализовать обход дерева с помощью поиска в ширину(там нужна очередь),то получится без рекурсии
0
|
0 / 0 / 0
Регистрация: 23.09.2009
Сообщений: 8
|
|
24.09.2009, 22:05 [ТС] | 8 |
Это вы все правильно говорите, но мне бы код воочию увидеть, плизЗЗЗ!
0
|
32 / 32 / 16
Регистрация: 18.08.2009
Сообщений: 93
|
||||||
24.09.2009, 22:35 | 9 | |||||
Код не рекурсивного просмотра дерева которое содержит строку в каждом узле
В ф-цию передается указатель на "корень дерева"
0
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
25.09.2009, 05:24 | 10 |
будем считать что я опаздал
0
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
25.09.2009, 08:12 | 11 |
кстати, встретил идею записывать дерево как массив. тогда обход дерева становиться тревиальной задачей. вот отсюда почерпнул
1
|
0 / 0 / 0
Регистрация: 23.09.2009
Сообщений: 8
|
|
25.09.2009, 11:28 [ТС] | 12 |
О! Спасибо!!!!
Мне правда задавали чтобы были фунции push и pop для помещения/удаления в стек....
0
|
15 / 15 / 0
Регистрация: 22.09.2009
Сообщений: 148
|
|
25.09.2009, 11:35 | 13 |
natalia-82, http://window.edu.ru/window_ca... 0&p_page=5
0
|
0 / 0 / 0
Регистрация: 23.09.2009
Сообщений: 8
|
|
25.09.2009, 11:37 [ТС] | 14 |
и еще сказали, чтобы дерево содержало не строки, а что угодно, т.е. туда надо ввернуть указетель на функцию с void*
0
|
0 / 0 / 0
Регистрация: 23.09.2009
Сообщений: 8
|
|
07.10.2009, 16:54 [ТС] | 15 |
А как мне написать, чтобы было тоже самое, но с функциями push() и pop()? Они у меня уже есть написанные эти пуш и поп и стек я сделала в виде связ. списка. Вроде все понятно в теории, но опыта в программировании совсем нету
И мне надо вообще-то написать 3 обхода left-root-right, right-root-left, left-right-root. Не судите строго - я новичок! Всем заранее спасибо за помощь!!!
0
|
3 / 3 / 0
Регистрация: 04.01.2010
Сообщений: 46
|
|
01.12.2011, 03:01 | 16 |
, как пример есть программа строящая бинарное дерево и выполняющая его обход в ширину. (без рекурсии)
0
|
01.12.2011, 03:01 | |
01.12.2011, 03:01 | |
Помогаю со студенческими работами здесь
16
Обход Бинарного дерева Обход бинарного дерева Обход бинарного дерева без рекурсии Как осуществлять обход бинарного дерева? Обратный обход бинарного дерева и удаление элементов Обход правой части бинарного дерева (корень - уникальный элемент) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |