![]() |
|
|
![]()
|
|
| max07 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Подскажите как программно реализовать Б - дерево? С помощью структуры.
Спасибо. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
в смысле "как реализовать"? тебе готовое решение нужно?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Гость_max07 |
|
|||
|
Unregistered |
Nu nesovsem. Primernyi kod tolko
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
примерный код:
struct BTree { BTreeNode* rootNode; BTreeNode* GetRootNode(); }; -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| max07 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
а BTreeNode это что?
Это сообщение отредактировал(а) max07 - 9.11.2005, 22:12 |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
нода бинарного дерева...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| max07 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Вот её то как и реализовать?
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
можеш как два указателя -- один на первую дочернюю, другой -- на следующую этого же уровня
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Но это кажется будет простое двоичное дерево? так чтоли? А уровень как описать? |
|||
|
||||
| _hunter |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
ты, наверное, список имел в виду?..
что значит как? если тебе он нужен -- храни в ноде. можно и просто считать пробегая от текущей вверх... -------------------- Tempora mutantur, et nos mutamur in illis... |
||||
|
|||||
| Гость_max07 |
|
|||
|
Unregistered |
Ну так а можешь написать сам код нода этого?
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
могу. ( но писать не буду ( из принципа ) )
если что-то нужно подсказать -- всегда пожалуйста... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| max07 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
||||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
странная запись...
+ этот рисунок абсолютно не говорит о структуре дерева -- можно ли по нему перемещаться только вперед ( обходить какой-нить рекурсивной функцией ) или нужно иметь возможность вернутся назад ( что на уровень что на ноду ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| max07 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Вот и говорю нужна помощь. Эта запись из книги. Преподы писали. Ничё не понятно если честно!
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
ты, для начала, со структурой дерева определись...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Гость_max07 |
|
|||
|
Unregistered |
не знаю как правильно на русском звучит
нужно получить Б дерево 1-ого порядка (может так) например у него max количество элементов 2, min 1 n порядка max = 2n, min = n |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
я ж выше писал. как его плнанируется обходить/создавать? нужна ли возможность назад вернуться?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| max07 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Да нужна.
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
значит структура должна хранить четыре указателя ( тип указателя -- эта же структура ): на предка, на первого из своих детей. и два на ноды своего уровня ( вперед и назад )
дожно быть два метода: для добавления ребенка и для добавления ноды этого же уровня ( так же их можно вынести в дерево ( так даже логичнее будет ) ) как работает добавление: создаеш новую ноду ( new ) и ставиш ей указатель на предка и возвратный в NULL -- она самая первая и указатель на следующую ставиш на бывшую первую. а той, которая была первая ставиш возвратный указатель на созданную. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| vlad21 |
|
|||
|
Unregistered |
to _hunter:
B-деревья и бинарные(двоичные) это разные вещи. to max07: Почитайте - Н.Вирт "Структуры+Алгоритмы=Программы" Примерное описание структуры B-дерева: //B страница (набор элементов) class BPage { public: //Элемент страницы struct BItem { int key; BPage * next; }; BPage(BPage * _next0 = NULL, int _count = 0) { next0 = _next0; count = _count; } protected: int count; //Кол-во элементов на странице BPage * next0; BItem item[2*n]; }; //B-дерево class BTree { protected: BPage * root; public: BTree() { root = NULL; } }; |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |