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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
cats2013
1 / 1 / 0
Регистрация: 14.04.2013
Сообщений: 17
#1

Дописать программу (Дерево. Дописать функцию - bst_remove_all - удалить все - child(left, right)) - C++

15.04.2013, 00:49. Просмотров 350. Ответов 0
Метки нет (Все метки)

У меня двоичное дерево поиска и нужно дописать функцию - bst_remove_all - удалить все - child(left, right) с использованием рекурсивной функции.

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
  template <class Item>
    typename bag<Item>::size_type bst_remove_all
    (binary_tree_node<Item>*& root_ptr, const Item& target)
    // Предусловие: root_ptr - root указатель двоичного дерева поиска
    // или это может быть NULL для пустого дерева).
    // Постусловие: все копии target удаляются из дерева поиска
    // и root_ptr теперь указывает в root (корень)  нового более меньшего дерева поиска. 
    //  return значение указывает сколько копий  target было удалено.
    {
        
            /* 
           все копии target  должны быть удалены
 
        */
        
        binary_tree_node<Item> *oldroot_ptr;
        
        if (root_ptr == NULL)
        {   
              // пустое дерево
 
           
        }
 
        if (target < root_ptr->data( ))
        {  
 
 
                    //Продолжается поиск в левом поддереве 
 
           
        }
 
        if (target > root_ptr->data( ))
        {   
 
                    //Продолжается поиск в правом поддереве 
        }
        
        if (root_ptr->left( ) == NULL)
        {   
               // Target был найден не в левом поддереве, таким образом мы можем удалить этот узел делая правого child
              //      новым корнем - root.
        oldroot_ptr = root_ptr;
        root_ptr = root_ptr->right( );
        delete oldroot_ptr;
        return 1;
        }
 
 
        
        // Если код находит этот  point, тогда мы должны удалить target из настоящего узла.
        //  Мы должны переместить  target с maximum item в левом поддереве. 
        // Продолжается поиск других копий  target для удаления.
        // Этот поиск должен начинаться с настоящего корня - root (с тех пор maximum елементб который был удален
           //    из левого поддерева.
        //  это так же должно быть копией  target).
        
 
    }
Помогите, пожалуйста, дописать программу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 00:49     Дописать программу (Дерево. Дописать функцию - bst_remove_all - удалить все - child(left, right))
Посмотрите здесь:

дописать функцию try – catch - C++
Превышение допустимой температуры плафона. // Содержание файла Lamp.h // ------------------------------------------------...

Дописать функцию сортировки по алфавиту в базе данных - C++
Есть программа база данных. я ее уже расписал. все кроме одной функции sort . в этой функции должна происходить сортировка переменных...

Нужно исправить ошибки в коде и дописать функцию - C++
В 17-ой строке компилятор выдает ошибку invalid operands of types 'int()' and 'int()' to binary 'operator+' В идеале программа должна...

Дописать программу на С++ - C++
#include&lt;iostream.h&gt; #include&lt;math.h&gt; struct List { float fi,r,z; int n; }; void vvod (List &amp;, int); void vivod (List...

дописать программу - C++
помогите пожалуйста дописать программу,по блок-схеме углы вроде написал,но правильно ли? #include &lt;iostream&gt; #include &lt;iomanip&gt; ...

Дописать программу - C++
В среде С++ реализовать консольное приложение использующее заданный фрагмент кода. Описания переменных добавить самостоятельно. ...

Дописать программу - C++
Нужно слова в строке переставить с конца в начале #include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #define N 600 ...

Помогите дописать программу - C++
вот код программы, но работает только первая часть из файла в массив, как теперь собрать её чтобы вся работала? может с помощью классов иил...

Как дописать программу - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов массива, лежащих в диапазоне от А до В; ...

как дописать программу - C++
Дана точка М с координатами ( x, y), определить, принадлежит ли точка заданной области. #include &lt;iostream&gt; #include &lt;clocale&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru