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

Бинарные деревья: удалить те листья, у которых нет братьев - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Генерация случайных чисел http://www.cyberforum.ru/cpp-beginners/thread1182208.html
Мне нужно заполнить множество матриц числами 0 или 1. Для этого использую функцию rand. Но мне необходима совсем случайная последовательность,а то матрицы получаются более или менее одинаковые.
C++ Целочисленная арифметика: найти на отрезке [n, m] натуральное число, имеющее наибольшее количество делителей Найти на отрезке натуральное число, имеющее наи*большее количество делителей. http://www.cyberforum.ru/cpp-beginners/thread1182191.html
C++ в квадратной матрице поменять местами первый и четвертый столбцы и вывести их
...
Не работает программа C++
Используя массив типа структура (с 6-10 элементов) составить программу, с помощью которой можно ввести в память компьютера данные из предметной области и получить характеристики фотоаппарата. Не пойму почему она не запускается. #include <tchar.h> #include <stdio.h> #include <iostream> #include <conio.h> struct fotos {
C++ Табулирование http://www.cyberforum.ru/cpp-beginners/thread1182188.html
Написать программу вывода таблиц по формуле Y = cos(x)+(A/B) через 1 градус в три колонки (х изменяется от 0 до alfa). alfa, A, B - переменные, нужно взять в пользователя. Обратите внимание на то, что в методах, используемых для вычисления тригонометрических функций (синус, косинус ...) значение угла выражается в радианах. Формула для перевода значения угла в радианы...
C++ Целочисленная арифметика: произведение n первых нечетных чисел равно p, сколько сомножителей взято? Произведение n первых нечетных чисел равно p. Сколько сомножителей взято? Если введенное число n не является указан*ным произведением, сообщить об этом. подробнее

Показать сообщение отдельно
FC_DK
0 / 0 / 0
Регистрация: 18.03.2014
Сообщений: 62
20.05.2014, 15:40     Бинарные деревья: удалить те листья, у которых нет братьев
Помогите написать такую функцию:

Удалить те листья в дереве, у которых нет братьев

Вот обычная функция удаления:
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
TNode* deleteTree(TNode * rootTree,int key){
    TNode * p;
    if(rootTree==NULL){
        return rootTree;
    }
    if(rootTree->inf<key){
        rootTree->right=deleteTree(rootTree->right,key);
        return rootTree;
    }
    else if(rootTree->inf>key){
        rootTree->left=deleteTree(rootTree->left,key);
        return rootTree;
    }
    if(rootTree->inf==key){
        if(rootTree==rootTree->right){
            delete rootTree;
            return NULL;
        }
        else if (rootTree->left==NULL){
            p=rootTree->right;
            delete rootTree;
            return p;
        }
        else if(rootTree->right==NULL){
            p=rootTree->left;
            delete rootTree;
            return p;
        }
        else{
            p=rootTree->right;
            while(p->left){
                p=p->left;
            }
            p->left=rootTree->left;
            p->right=rootTree->right;
            delete rootTree;
            return p;
        }
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru