0 / 0 / 0
Регистрация: 14.11.2014
Сообщений: 9
|
||||||
1 | ||||||
Реализация бинарного дерева27.08.2015, 18:00. Показов 4238. Ответов 1
Метки нет (Все метки)
Доброго времени суток, уважаемые форумчане. Возник вопрос по реализации бинарного дерева на С++, а именно с методом удаления элемента в структуре. Как я понимаю, если мы удалим какой-нибудь элемент в дереве, то его потомки(если таковы имеются) останутся в динамической памяти, мы просто таким образом потерям ссылки на элементы-потомков, поэтому удалять нужно рекурсивно каждый элемент, который связан с удаляемым. Вот мои наработки, но при вызове функции print() вылетает Exception (Необработанное исключение по адресу 0x00D68907 в BinaryTree.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000005.). Помогите найти ошибку плз =) буду очень благодарен =)
0
|
27.08.2015, 18:00 | |
Ответы с готовыми решениями:
1
Реализация бинарного дерева Реализация и вывод бинарного дерева Реализация бинарного дерева классом Реализация бинарного дерева поиска |
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
27.08.2015, 20:16 | 2 |
Нет, обычно место удаляемого занимает один из его потомков, нужно только подправить указатели у родителя и потомков.
Помимо удаления через delete нужно изменять все указатели, которые на него указывают у родителя и потомков, иначе они будут указывать на удаленный элемент, и при обращении к нему выскочит ошибка доступа.
0
|
27.08.2015, 20:16 | |
Помогаю со студенческими работами здесь
2
Реализация бинарного дерева поиска Реализация бинарного дерева, используя класс Реализация обхода в ширину и глубину бинарного дерева Запись бинарного дерева в файл и восстановление из него этого дерева Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |