0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 17
1

Итерационный метод удаления бинарного дерева

15.04.2012, 22:42. Показов 1584. Ответов 2
Метки нет (Все метки)

Есть бинарное дерево поиска нужно создать итерационный метод удаления дерева. Вот есть функция удаления дерева но при удалении происходит ошибка вот такая: Необработанное исключение в "0x64bd12b4" в "Derevo.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfeeefee8".
и указивает на free(node->left);

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
typedef struct tag_tree{
    int info;
    struct tag_tree *left, *right;
}TREE;
 
void FreeNodeMemo(TREE *node);
 
int TreeHeight(TREE *root)
{
    int lh,rh;
    if(root == NULL) return 0;
    lh = TreeHeight(root->left);
    rh = TreeHeight(root->right);
    return lh>rh ? lh+1: rh+1;
}
 
 
void FreeNodeMemo(TREE *node)
{
    free(node->left);
    free(node->right);
    free(node); 
}
 
 
 
void DeleteAllNodes(TREE *root)
{
    
    TREE **stack;
    stack = (TREE**)malloc(TreeHeight(root)*sizeof(TREE*));
    int st=NULL;
    TREE *node = root, *pnext;
    while(node != NULL){
        if(node->left != NULL){
            pnext = node->left;
            if(node->right != NULL)
                stack[st++] = node->right;
        }else
            if(node->right != NULL)
                pnext = node->right;
            else
                pnext = stack[st--];
        FreeNodeMemo(node);
        node = pnext;
        
        
    }
}
Помогите пожадуйста исправить ошибку.Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2012, 22:42
Ответы с готовыми решениями:

Удаления узла из бинарного дерева поиска
Уже довольно много времени убил на эту задачу, теорию понимаю, на практике реализовать никак не...

Написать подпрограмму удаления элемента из бинарного дерева
...

Функция удаления листа (или ветки) бинарного дерева
Здравствуйте программисты! Учусь на первом курсе. Возникли проблемы с разработкой функции удаления...

Метод адресирования элементов бинарного дерева. Что значит?
Добрый вечер. В задании сказано построить структуру-бинарное дерево и т.д. И разработать метод...

2
600 / 568 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
16.04.2012, 01:09 2
упс не заметил, что без рекурсии
0
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 17
16.04.2012, 11:28  [ТС] 3
рекурсивное удаления не походит так как удаляю в дереве 10000 елементов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2012, 11:28
Помогаю со студенческими работами здесь

Дополнить класс, включив метод подсчета числа узлов заданного бинарного дерева
Изучить приведенный пример реализации класса «Дерево двоичного поиска», для которого реализованы...

Запись бинарного дерева в файл и восстановление из него этого дерева
Задача такая: есть бинарное дерево. Каждый элемент дерева содержит 3 указателя - 1 указатель на...

Написать шаблон бинарного дерева с функцией распечатки дерева
Не понимаю, что от меня хотят. Дано такое задание: Написать шаблон бинарного дерева с функцией...

Исследовать итерационный метод- метод касательных для решения нелинейных уравнений
прочитал много всего , но сам пример реализовать никак не могу , кто может помогите F(x) =...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru