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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Распараллеливание алгоритмов http://www.cyberforum.ru/cpp-beginners/thread616837.html
Доброго дня всем. Встал вопрос о выборе темы,связанной с распараллеливанием алгоритмов. Какие задачи наиболее "восприимчивы" к распараллеливанию? Есть ли польза при распараллеливании сортировок? P.S. Буду рад, если кто-нибудь подскажет какие-либо ресурсы, связанные с данной проблемой
C++ Текст в файле:Структура - знаки зодиака Задание: Текст в файле:Структура - знаки зодиака. Структура с полями: фамилия,год рождения,знак зодиака. Ввести с клавиатуры знак Зодиака Найти в файле запись с таким знаком и вывести его. Добавлено через 29 секунд Плиз помогите http://www.cyberforum.ru/cpp-beginners/thread616828.html
C++ Реализовать в виде функций набор подпрограмм
Здраствуйте помогите пожалуйста решить задание : Реализовать в виде функций набор подпрограмм для выполнения операций с многочленами от одной переменной (первый многочлен степени m, второй — степени n): 1) сложения; 2) вычитания; 3) возведения в натуральную степень k; 4) вычисления производной от многочлена ; 5) вычисления значения в точке x0. Используя эти...
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
Добрый день, собственно появилась задача - в винде открывать файлы различных форматов и затем производить писк по ключевым словам в теле файла. Так как необходимо работать с весьма различными по свое структуре форматами (.djvu,.pdf, файлы офиса от MS) возникают вопросы следующие: 1) Каким образом лучше определять форматы файла? Т.е. я понимаю, что необходимо открывать на бинарное чтение файлы,...
C++ Структуры. Сортировка Здравствуйте, ув. форумчане. Я студент 1ого курса и только недавно начал изучать C++, учился по видеоурокам, но застрял на структурах, не очень понял как все работает. Нам нужно было сделать программу "Студенческий поток". Программа должна добавлять\удалять\редактировать информацию о студенте, добавлять\удалять\редактировать информацию о группах, поиск по студентам и тд. это все получилось... подробнее

Показать сообщение отдельно
Yentroistok
1 / 1 / 0
Регистрация: 25.02.2012
Сообщений: 59
30.06.2012, 12:32  [ТС]     Удаление вершины дерева поиска
Ну что-то подобное я написал, но оно не работает

uz - узел
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
void delElement(bin_tree *uz)
{
    bin_tree * temp;
    if( (uz->right != NULL || uz->left != NULL))
    {
        if(uz->left == NULL && uz->right == NULL && uz->parent == NULL)
         {
            if(uz==uz->parent->right)
               uz->parent->right = NULL;
            else
               uz->parent->left = NULL;
            delete uz;
         }
        else if(uz->left == NULL && uz->right != NULL)
         {
            uz->right->parent = uz->parent;
            uz->parent = uz->right;
            delete uz;            
         }
         else if(uz->left != NULL && uz->right == NULL)
         {
            uz->left->parent=uz->parent;
            uz->parent=uz->left;
            delete uz;            
         }
         else if(uz->left != NULL && uz->right != NULL)
         {
            uz->right->parent=uz->parent;
            temp=uz->right;
            while(temp->left != NULL)
                  temp = temp->left;
            temp->left = uz->left;
            uz->left->parent = temp;
            delete uz;            
         }
    }
    else
    {
        if(uz->left == NULL && uz->right == NULL && uz->parent == NULL)
        {
     delete uz;                      
        }
        else if(uz->left==NULL && uz->left == NULL && uz->parent != NULL) 
        {
     if(uz->parent->left == uz)
        uz->parent->left = NULL;
     else
     uz->parent->right = NULL;  
     delete uz;                      
        }  
        else if(uz->left != NULL && uz->right == NULL)
        {
           uz->left->parent = NULL;
           pHead = uz->left;
           delete uz;           
        }
        else if(uz->left == NULL && uz->right != NULL)
        {
           uz->right->parent = NULL;
           pHead = uz->right;
           delete uz;           
        }
        else if(uz->left != NULL && uz->right != NULL)
        {
           uz->right->parent = NULL;
           pHead = uz->right;
           temp = uz->right;
           while(temp->left != NULL)
                 temp = temp->left;
           temp->left = uz->left;
           uz->left->parent=temp;
           delete uz;           
        }
    }
    
    printf("Удаленный:  эл-т = %d;\n", uz);
}
 
Текущее время: 08:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru