|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.07.2011, 23:03 | #1 |
Пользователь
Регистрация: 22.01.2011
Сообщений: 78
|
В данной программе реализовано почти все,кроме фунции удаления,которую я так и не смог реализовать. Руководствуюсь методами:
-если это лист, то просто удаляем. -если элемент имеет левое поддерево, "поднимаем" из него максимальное. -если только правое поддерево: -либо "поднимаем" из него минимальный -либо просто "пропускаем" удаляемый..Вопрос: А верен ли этот алгоритм? Коллеги, если кто подскажет идею функции удаления, буду премного благодарен. Код:
//void Del(Node *n); //void DelALL(); //~Tree(){DelALL;} Последний раз редактировалось Stilet; 08.07.2011 в 20:08. |
08.07.2011, 15:46 | #2 |
Форумчанин
Регистрация: 02.06.2011
Сообщений: 282
|
Код:
|
08.07.2011, 16:43 | #3 |
Пользователь
Регистрация: 22.01.2011
Сообщений: 78
|
Ни фига себе кодик))...Спасибо, конечно! Если б чуть покороче, я еще не настолько крут в этом, деревья только на днях начали изучать.
|
08.07.2011, 19:08 | #4 |
Форумчанин
Регистрация: 02.06.2011
Сообщений: 282
|
он длинный только потому что там отдельно для корня дерева и для не корня
если напишешь свой, работающий точно правильно, скинь сюда Последний раз редактировалось Kukurudza; 08.07.2011 в 19:22. |
08.07.2011, 22:55 | #5 |
Пользователь
Регистрация: 03.11.2010
Сообщений: 95
|
деревья описаны во многих учебниках (авл, двоичные, 2-3). Например у Ахо или Вирта
|
10.07.2011, 13:20 | #6 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
Тоже когда-то работал с деревьями, правда поиска и сбалансированными деревьями, вот тебе процедура удаления:
Код:
|
10.07.2011, 13:22 | #7 |
Форумчанин
Регистрация: 02.06.2011
Сообщений: 282
|
если у него дерево не сбалансировано, старания напрасны, эти функции насколько я знаю бесполезны. а в STL какой контейнер на основе дерева кто в курсе?
|
10.07.2011, 13:26 | #8 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
|