|
1 / 1 / 0
Регистрация: 25.11.2014
Сообщений: 80
|
||||||
Заполнение бинарного дерева в ширину без очереди08.09.2018, 22:21. Показов 7093. Ответов 60
Метки бинарное дерево (Все метки)
Подскажите алгоритм заполнения бинарного дерева и поиск по нему, все в ширину.
Дерево имеет такую структуру.
Такое возможно? Заранее спасибо!
0
|
||||||
| 08.09.2018, 22:21 | |
|
Ответы с готовыми решениями:
60
Заполнение бинарного дерева по уровням (в ширину) Обход бинарного дерева в ширину Реализация заполнения бинарного дерева в ширину |
|
1 / 1 / 0
Регистрация: 25.11.2014
Сообщений: 80
|
|
| 09.09.2018, 01:02 [ТС] | |
|
0
|
|
|
Модератор
|
|
| 09.09.2018, 11:21 | |
|
Как говорится "Утро вечера мудренее".
С утра понял, что неверно в принципе всё реализовано. Должно быть разделение классов общего объекта "MyTree" и узлов "Node". MyTree - владеет информацией обо всем дереве, иначе не организовать "поиск", "удаление" и т.д. Node - информацией только о родительском и дочерних узлах. Это типа XDocument и XElement для работы с XML данными. Вся информация хранится в MyTree. А Node вытаскивает из MyTree только нужную часть, инкапсулируя остальную информацию.
2
|
|
|
1 / 1 / 0
Регистрация: 25.11.2014
Сообщений: 80
|
|||||||||||
| 09.09.2018, 11:35 [ТС] | |||||||||||
|
Элд Хасп,
Добрый день. Подскажите, получится реализовать добавление в ширину, не меняя структуры
0
|
|||||||||||
|
Модератор
|
||
| 09.09.2018, 13:56 | ||
|
Добавлено через 55 секунд Или Вы, напротив, интересуетесь переходом на первоначальный вид?
0
|
||
|
1 / 1 / 0
Регистрация: 25.11.2014
Сообщений: 80
|
|||||||
| 09.09.2018, 14:10 [ТС] | |||||||
|
Добавлено через 9 минут Элд Хасп, Curry писал свой вариант, он работает и искать по нему можно, только заполняет немного не так.
0
|
|||||||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|
| 09.09.2018, 14:16 | |
|
Что хранит Count? Общее количество элементов в ветвях или только в данном узле?
0
|
|
|
1 / 1 / 0
Регистрация: 25.11.2014
Сообщений: 80
|
|
| 09.09.2018, 14:28 [ТС] | |
|
0
|
|
|
Модератор
|
||||||
| 09.09.2018, 14:34 | ||||||
|
Класс
Branch ввел только для удобства и инкапсуляции свойства Coun - число элементов в ветви.Можно эти свойства вынести в основной класс. В основном классе имя свойства Coun - заменено на Level, т.к. название не соответствует смыслу. Count - количество, Level - уровень.Если убрать класс Branch, то свойства MyTree будут выглядеть так:
Также надо часть кода отвечающего за подсчёт элементов в ветке в методе Add класса Branch перенести в метод Add класса Branch. Справитесь?
0
|
||||||
|
1 / 1 / 0
Регистрация: 25.11.2014
Сообщений: 80
|
|
| 09.09.2018, 14:38 [ТС] | |
|
0
|
|
|
Модератор
|
||||
| 09.09.2018, 14:44 | ||||
Добавлено через 1 минуту Добавлено через 1 минуту
0
|
||||
|
1 / 1 / 0
Регистрация: 25.11.2014
Сообщений: 80
|
||
| 09.09.2018, 14:50 [ТС] | ||
|
Элд Хасп,
1)Удаление не будет. 2) Поиск должен возвращать MyTree, чтобы можно было получить тот же Level узла Собираю по вашему варианту, главное чтобы числа,которые буду передавать писались в ширину Добавлено через 1 минуту
0
|
||
|
Модератор
|
||||||
| 09.09.2018, 14:51 | ||||||
|
Если ни чё не напутал
0
|
||||||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|||||||||
| 09.09.2018, 14:53 | |||||||||
0
|
|||||||||
|
1 / 1 / 0
Регистрация: 25.11.2014
Сообщений: 80
|
|
| 09.09.2018, 15:29 [ТС] | |
|
Элд Хасп,
Элд Хасп, ROOT:1 Left for 1 --> 2 Left for 2 --> 4 Right for 2 --> 6 Right for 1 --> 3 Left for 3 --> 5 Right for 3 --> 7 Только получается 6 и 5 местами путает и так далее через 1 уровень
0
|
|
|
Модератор
|
||||||
| 09.09.2018, 15:34 | ||||||
Пока не проверял.
0
|
||||||
|
1 / 1 / 0
Регистрация: 25.11.2014
Сообщений: 80
|
|
| 09.09.2018, 15:43 [ТС] | |
|
КОП, А как в Вашем примере вывод сделать и поиск?
0
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|||||||
| 09.09.2018, 16:35 | |||||||
0
|
|||||||
|
Модератор
|
|||||||||||
| 09.09.2018, 18:38 | |||||||||||
Сообщение было отмечено fivebits_ как решение
Решение
Воскресенье - домашние заботы.
Вот так, вроде, нормально работает Кликните здесь для просмотра всего текста
Добавлено через 1 час 16 минут Добавил в класс Tree методы поиска по данным узла Find и индекса FindIndex. В класс Node - метод печати Print.Кликните здесь для просмотра всего текста
1
|
|||||||||||
|
1 / 1 / 0
Регистрация: 25.11.2014
Сообщений: 80
|
|||||||
| 09.09.2018, 18:48 [ТС] | |||||||
|
Как-то странно, при выводе все ок, вывод на поиске основан.
Элд Хасп, Find работает как надо, спасибо!!!! Буду разбираться в мелочах.
0
|
|||||||
| 09.09.2018, 18:48 | |
|
Реализовать обход бинарного дерева в ширину Печать на консоль бинарного дерева, обход в ширину Реализация обхода в ширину и глубину бинарного дерева Печать на консоль бинарного дерева, обход в ширину Заполнение особого бинарного дерева Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|