![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Podarochek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
как создать бинарное дерево понятно...=>
struct tree{ int Key;//полезные данные (ключ) tree *Left, *Right;//ссылки на сыновей }; tree* MakeTree (tree*Tree,int data[], int &from, int n) { int n1, n2; if ( n == 0 ) return NULL;//ограничение рекурсии Tree = new tree;//выделить память под вершину Tree->Key = data[from++];//записать данные и перейти к следующему элементу n1 = n / 2;//размеры левого n2 = n - n1 - 1;//и правого поддеревьев Tree->Left = MakeTree(Tree,data, from, n1); Tree->Right = MakeTree(Tree,data, from, n2); return Tree; } вопрос как создать дерево с четырмя указателями??? что-то не идет...:( struct tree { int val; tree *p[4]; // Массив указателей на элементы структур данных }; |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
передавать массивы да еще и в рекурсивных функциях очень неблагодарное занятие. Передавай лучше указатель:
tree* MakeTree (tree*Tree, const int *data, int &from, int n) |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Podarochek, что-то я не очень понимаю - ЗАЧЕМ 4-ри ???
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Podarochek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
||||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
У узла два указателя - на сыновей, а еще два на что должны указывать ???
Я думаю это возможно, но с какой целью, и что из этого получиться, бинарное дерево или мутант, какой-то... Читай: http://ru.wikipedia.org/wiki/%D0%94%D0%B2%...%B5%D0%B2%D0%BE -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Podarochek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
|
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
если я правильно понял...
|
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Вообще это передача указателя а не ссылки. ЕМНИП это не менялось со времён форка от си.
Например на родителя. Podarochek, заменил бы массив на std::vector<tree*> сразу -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Podarochek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
имеется ввиду ссылка как неявный указатель, поскольку никто в определении не указывал явно *..., а так согласен что передается указатель на начало массива... korian - ОГРОМНОЕ СПАСИБО!!!! ПОНЯЛ ПРАВИЛЬНО!!! |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |