Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 22

Построить N-арное дерево: не могу понять принцип размещения элементов

07.09.2016, 21:16. Показов 4778. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужно построить n-арное дерево. Алгоритм постоени бинарного мне полностью понятен, но тут не могу сообразить принцип размещения элементов. Гугл не помог. Буду очень признателен за ссылочку, название литературы или краткое изложение принципа на словах.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2016, 21:16
Ответы с готовыми решениями:

Не могу понять принцип работы
Доброе время суток, можете объяснить как работает SgmlReader? Наткнулся на такой пример XmlDocument FromHtml(TextReader reader) { ...

Не могу понять принцип работы
Здравствуйте. Только начал изучать java. Возникла проблема. Ответ программы 7, а нужно 3. /* Написать метод возвращающий...

НЕ могу понять принцип программирования
Здравствуйте, господа программисты, требуется ваша помощь. не могу понять секрет программирования. Теорию я знаю дохожу до написания кода у...

17
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
07.09.2016, 21:46
Цитата Сообщение от Sergey0088 Посмотреть сообщение
Алгоритм постоения бинарного мне полностью понятен, но тут не могу сообразить принцип размещения элементов.
Неустранимое противоречие в данной фразе не даёт уразуметь вопрос. Давайте, излагая алгоритм подойдём к месту, где построение конфликтует с концепцией размещения, может?
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
07.09.2016, 22:06
А чем 2 принципиально отличается от другого числа, больше го единицы?
0
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 22
07.09.2016, 22:06  [ТС]
В бинарном, если элемент больше — он отправляется в одну сторону, иначе — в другую. Как быть тут, на основании чего элемент размещать в дереве? Понятно, что всесто двух указателей, будет массив указателей, но всё-равно не ясень принцип размещения нового элемента)
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
07.09.2016, 22:10
Цитата Сообщение от Sergey0088 Посмотреть сообщение
В бинарном, если элемент больше — он отправляется в одну сторону, иначе — в другую
Вигвам, как говорится. Это в сбалансированном бинарном так.
0
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 22
07.09.2016, 22:14  [ТС]
То есть, поиск в n-арном в любом случае будет медленнее или я чего то не так понял?
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
07.09.2016, 22:19
Какой поиск? Там могут лежать элементы, которые даже сравнение на равенство не поддерживают, не то что на больше меньше
1
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 22
07.09.2016, 22:28  [ТС]
Какой в нём тогда вообще смысл?)
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
07.09.2016, 22:37
Цитата Сообщение от Sergey0088 Посмотреть сообщение
Какой в нём тогда вообще смысл?)
Такие деревья могут моделировать реальные деревья. Дуб, клён, файловая система, математическая формула, сайт...
В этом случае размерность каждого уровня произвольна и зависит от оригинала. То есть, - какая получится.
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
07.09.2016, 22:41
Цитата Сообщение от Sergey0088 Посмотреть сообщение
Какой в нём тогда вообще смысл?)
Как, вы разве не знаете про древовидную иерархическую структуру объектов с паритетными связями?
1
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
07.09.2016, 23:23
Цитата Сообщение от _Ivana Посмотреть сообщение
Как, вы разве не знаете про древовидную иерархическую структуру объектов с паритетными связями?

Не по теме:

:-)

0
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 22
08.09.2016, 00:49  [ТС]
Спасибо, я то думал, что там должен быть какой-то сложный алгоритм вставки и последующего быстрого поиска)
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
08.09.2016, 09:24
Цитата Сообщение от Sergey0088 Посмотреть сообщение
Спасибо, я то думал, что там должен быть какой-то сложный алгоритм вставки и последующего быстрого поиска)
Не должен. Но может. Ориентированное, сбалансированное дерево содержит упорядоченные уровни. N в данном контексте ограничивает размер уровня. Строится оно как и двоичное ориентированное. Если сравнивать с построением упорядоченного списка, то это похоже на пасьянс, который складывает престарелый, склеротичный граф. То есть граф с рекурсивно зацикленным поведением. Там где нужно бы вставить карту B между картами A и С он забудется опустится по A на уровень ниже. И так пока карты не закончатся. Ищет потом также. Причём быстрее, чем в линейном, сортированном, списке. Вот что значит правильная ориентация.
1
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 22
08.09.2016, 19:26  [ТС]
Интересно, нужно попробовать построить такое) Не посоветуете, где про это можно поподробнее почитать?
Но основный принцип, я вроде уловил: если мы находимся на определённом уровне, мы сначала смотрим, есть ли возможность для вставки на этом уровне (если реально количество потомком меньше N), если же её нет, то ищем самый близкий элемент по знчению к вставляемому и опускаемся от него на уровень ниже. А сами элементы на уровне храним в упорядоченном состоянии
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
08.09.2016, 22:21
Цитата Сообщение от Sergey0088 Посмотреть сообщение
Не посоветуете, где про это можно поподробнее почитать?
Я бы и сам почитал, если честно. Только боюсь, самое сложное в таких вещах, как и в случае с бинарным деревом, это балансировка. И почему-то кажется, что балансировать такое дерево ещё труднее. Надо у _Ivana, спросить. Он знает.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
09.09.2016, 04:02
Угу. Multiway Trees. Часто используемая структура - B-tree

Немного по теме есть у Роберт Седжевик "Алгоритмы на С++: анализ структуры данных, сортировка, поиск, алгоритмы на графах".

У Jan Jannink была в свое время статья (и крайне глючная имплементация) B++Tree, ссылка сдохла, но есть нечто сходное: STX B+ Tree C++ Template Classes
Вложения
Тип файла: rar map_bppt_jannink_dox.rar (17.0 Кб, 9 просмотров)
1
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 22
09.09.2016, 16:56  [ТС]
Благодарю)
0
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 8
04.12.2016, 18:59
Если вас интересует тема дерева,
то посетите, пожалуйста мой блог
http://srulbond.blogspot.co.il
там есть некоторые разъяснения и ссылка на скачивание готовой программы.
Бесплатной.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2016, 18:59
Помогаю со студенческими работами здесь

Не могу понять принцип array_rand
Здравствуйте. Стоит задача вывести рандомом одно случайное значение из массива. Использую array_rand: foreach...

DataGridView не могу понять принцип
Если возможно, объясните в двух словах.... у меня есть три переменные, которые необходимо занести в DataGridView, при чем две просто в...

Не могу понять принцип отображения ДереваЗначений в УФ.
Добрый день. Свел суть задачи до, казалось бы, простейшего - отобразить дерево полученное запросом на форме. Поискал что и как - сделал....

Не могу понять принцип работы программы
Откуда берутся : в количестве введенных символов? #include <iostream> #include <iomanip> using namespace std; int main() { ...

Не могу понять принцип работы python
Добрый день! Полгода учил PHP, сейчас нужен Python, разобрался с синтаксисом, ООП и пр. Но не могу приступить к реальной практике, т.к. не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru