С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Удаление вершины дерева поиска - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Распараллеливание алгоритмов http://www.cyberforum.ru/cpp-beginners/thread616837.html
Доброго дня всем. Встал вопрос о выборе темы,связанной с распараллеливанием алгоритмов. Какие задачи наиболее "восприимчивы" к распараллеливанию? Есть ли польза при распараллеливании сортировок? ...
C++ Текст в файле:Структура - знаки зодиака Задание: Текст в файле:Структура - знаки зодиака. Структура с полями: фамилия,год рождения,знак зодиака. Ввести с клавиатуры знак Зодиака Найти в файле запись с таким знаком и вывести его. ... http://www.cyberforum.ru/cpp-beginners/thread616828.html
C++ Реализовать в виде функций набор подпрограмм
Здраствуйте помогите пожалуйста решить задание : Реализовать в виде функций набор подпрограмм для выполнения операций с многочленами от одной переменной (первый многочлен ...
C++ Что нужно добавить в программу?
Народ помогите пожалуйста, почему не сохраняются внесённые записи #include "stdafx.h" #include "cstdlib" #include <iostream> #include <conio.h> using namespace std; class Account {
C++ Поиск в файлах с различными форматами http://www.cyberforum.ru/cpp-beginners/thread616781.html
Добрый день, собственно появилась задача - в винде открывать файлы различных форматов и затем производить писк по ключевым словам в теле файла. Так как необходимо работать с весьма различными по...
C++ Структуры. Сортировка Здравствуйте, ув. форумчане. Я студент 1ого курса и только недавно начал изучать C++, учился по видеоурокам, но застрял на структурах, не очень понял как все работает. Нам нужно было сделать... подробнее

Показать сообщение отдельно
neske
1505 / 872 / 84
Регистрация: 26.03.2010
Сообщений: 2,987
30.06.2012, 12:35
рекурсивная функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void del(node *&cur) { 
    if (cur->left == NULL || cur->right == NULL) { // если есть один потомок, или их вообще нет
        node* sav = cur;
        if (cur->left != NULL) // перетаскиваем потомка на место вершины, а саму вершину удаляем
            cur = cur->left;
        else
            cur = cur->right;
        delete sav;
    } else { // дальше идет процедура удаления, если у вершины есть оба потомка
        node** p2 = &cur->right;
        while ((*p2)->left) p2 = &((*p2)->left);
        cur->key = (*p2)->key;
        del(*p2);
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.