0 / 0 / 0
Регистрация: 23.09.2009
Сообщений: 8
|
|
1 | |
НЕрекурсивный обход бинарного дерева24.09.2009, 12:35. Показов 26605. Ответов 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
Обход Бинарного дерева Обход бинарного дерева Обход бинарного дерева без рекурсии Как осуществлять обход бинарного дерева? Обратный обход бинарного дерева и удаление элементов Обход правой части бинарного дерева (корень - уникальный элемент) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|