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

Простая организация удаление узла в бинарном дереве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Стивен Прата Кто Читал его ? - Нужен Совет http://www.cyberforum.ru/cpp-beginners/thread827926.html
Нужна книжка по изучению C++ ,так сказать "С НУЛЯ",чтоб всё разжевывалось. Остановился На авторе Стивен Прата ,книга - Язык программирования C++ лекции и упражнения ,так вот ,вопрос в том какое...
C++ Массив структур Как отсортировать массив структур или вектор (значения не имеет) по полю типа float? Спасибо Вот нашёл пример на форуме, но не могу понять выделенные строки и по какому полю идёт сортировка(думаю по... http://www.cyberforum.ru/cpp-beginners/thread827914.html
Нужна литература по использованию popcap framework C++
Недавно нашел в интернете статью про 2D игры написанных на с++ с помощью popcap framework, но литературы я не нашел на эту тему, может вы посоветуете литературу на русском языке по использованию...
C++ Считывание уже выведенных символов на экране консоли
Привет всем тем, кто любит пушистых зверушек, да и всем остальным тоже. Ну да ладно, Допустим на экран выведена некоторая информация, путь будет cout<<endl; system("ver"); на экране выведется:...
C++ передача массива по значению http://www.cyberforum.ru/cpp-beginners/thread827894.html
Такая проблема Написал лабу "решение СЛУ методом Гаусса" Все корни идет верно. Но при проверке корней, обнаружил, что исходная матрица преобразовалась в глобальной области кода, хотя в функцию она...
C++ Дан текст, каждый символ которого может быть малой буквой, цифрой или одним из знаков +,*,- дан текст, каждый символ которого может быть малой буквой, цифрой или одним из знаков +,*,-. группой букв называют такую последовательность букв, которой не предшествует и за которой не следует... подробнее

Показать сообщение отдельно
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
04.04.2013, 15:17
Нет кодом я не подскажу просто в теории у тебя есть адрес узла который ты хочешь удалить. Ну ты допустим стоишь в предыдущем узле и через указатель на перед делаешь проверку ага этот узел имеет искомое значение значит мы его будем удалять. Вот у тебя есть указатель на этот узел который нужно удалить ты его делаешь равным нулю. Перед этим адрес узла который ты хотел удалить присваиваешь промежуточному указателю, он тебе пригодится для освобождения памяти. Тебе просто нужно память высвободить, потому что за время работы программы может закончится память, система будет ее считать занятой, хотя на самом деле она свободна для программы просто не освободившаяся для системы.
Дальш ты берешь это промежуточный указатель и рекурсивно обходишь каждый узел начиная с низов я непомню как этот обход называется и затем delete адрес самого нижнего делаешь, Ну как это можно представить от допустим у тебя есть придпоследний узел ты сейчас стоишь в нем делаешь через указатель на последний узел то есть проверку указателя последнего узла если он равен нулю, то это последний и можно delete использовать делаешь delete и адресс этого узла. Токо обход нужно делать правильный.

Добавлено через 5 минут
там все это удаление делается в две функции мб можно делать в одну но вде del(указатель на узел)- это функция которая вызывается при удалении. и delHelper(указатель на узел) - эта рекурсивная которая вызывается если узел не последний, а имеет еще под собой узлы.
в del делается проверка если узел один то он просто удаляется, а если не один то просто вызов delHelper()
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru