Форум программистов, компьютерный форум CyberForum.ru

Удаление элемента из бинарного дерева - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ошибка Run-Time Check Failure #2 http://www.cyberforum.ru/cpp-beginners/thread1498347.html
под конец програмки освобождал память и ошибка пропадала но происходило аварийное завершение ( подскажите где проблема . class publication { protected: string name; float price; public: publication() :name("N/A"), price(0.0)
C++ Посоветуйте книгу по Си++ Добрый вечер. Порядка года назад я очень хотел изучить языки Си и Си++, но не знал о них вобще ничего. Поставив себе эту цель, я начал грызть литературу по данным языкам. Сперва прочел книгу Лафоре - ООП и Си++, буквально вгрызаясь в каждую строчку книги, чтобы понять смысл всего, о чем там говорится, а так же выполнял все упражнения из нее, книга оказалась оооочень удачным введением для... http://www.cyberforum.ru/cpp-beginners/thread1498318.html
C++ Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно
Я изучаю C++ уже больше года, но чувствую, что до сил пор не умею им пользоваться. Большая часть сил тратится на такие тривиальный задачи, как создание функций работы с файлами (возвратить N-ную строку из файла, определить количество строк в файле, удалять из строк недопустимые символы). Это очень скучно, а еще и в конечном итоге получается что-то очень баганное и неопрятное. А это заставляет...
Как часто приходится манипулировать директивами препроцессора для написания программ на Си++? C++
Как часто приходится манипулировать директивами препроцессора и вобще использовать их для написания программ на Си++?
C++ Безопасная работа с памятью в OpenMP С++ http://www.cyberforum.ru/cpp-beginners/thread1498291.html
Добрый день. Вопрос связан с тем как можно добавлять элементы к общему динамическому массиву в параллельных потоках. По сути задачи приходится к созданному многомерному vector добавлять новые элементы. Пусть есть, например, vector<vector<int>> A. Первая размерность уже проинициализрована полностью (например, 0-N-1). Есть гарантия, что внутри потоков происходит обращение к собственному набору...
C++ Генерация и проверка серийного номера, как реализовать? Мне нужно, скажем так, защитить программу - написать функцию генерации и проверки уникального серийного номера для каждой копии программы. Пока не совсем понимаю, в каком направлении копать. Я знаю, что как-то можно получить ID процессора или винчестера и отталкиваться от этого. (А если, скажем программа на виртуалке будет запущена, то id оборудования там будут одинаковые?) подробнее

Показать сообщение отдельно
МарияБелая
2 / 2 / 0
Регистрация: 13.03.2014
Сообщений: 75
13.07.2015, 21:06     Удаление элемента из бинарного дерева
Ругается компилятор в Visual Studio при выполнении кода удаления элемента, а именно в том месте, где нужно удалить элемент с двумя дочерними элементами( в четвертом условии). Ошибка такая: "Unhandled exception at 0x0015483B in BinaryTree.exe: 0xC00000FD: Stack overflow (parameters: 0x00000001, 0x001C2FFC)." Что исправить?
Код:
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
Tree* DeleteNode(Tree* node, int ch)
{
    /*Если удаляемый элемент находится в корне текущего поддерева и имеет два дочерних узла,
    то нужно заменить его минимальным элементом из правого поддерева
    и рекурсивно удалить минимальный элемент из правого поддерева.*/
 
    if (node == NULL)
        return node;
 
    if (ch < node->data)
    {
        node->left = DeleteNode(node->left, ch);
    }
    else if (ch > node->data)
    {
        node->right = DeleteNode(node->right, ch);
    }
    else if (node->left != NULL && node->right != NULL)
    {
        node->data = Minimum(node->right)->data;
        node->right = DeleteNode(node, node->right->data);
    }
    else if (node->left != NULL)
    {
        node = node->left;
    }
    else
    {
        node = node->right;
    }
 
    return node;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru