Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 23.10.2018
Сообщений: 19
1

Функция удаления узла в BST

18.12.2019, 15:18. Показов 782. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите написать функцию которая удаляет узел в BST;
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
78
79
80
81
82
struct Node {
    int *d;
    int size;
    
    int extendSize(int x);
 
    Node(int size) {
        this->size = extendSize(size);
        this->d = new int[this->size];
        for (int i = 0; i < this->size; i++) {
            d[i] = 0;
        }
    }
};
int Node::extendSize(int x)
{
    int value = 0;
    for (int y = 0; y < x + 1; y++) {
        value = (2 * value) + 2;
    }
    return value;
}
void Tree_Insert(Node *&p, int d)
{
    int index = 0;
    while (true) {
        if (p->d[index] == NULL) {
            p->d[index] = d;
            break;
        }
        else if (p->d[index] <= d) {
            if (p->d[index] == d) 
                break;
            else
                index = (2 * index + 2);
        }
        else if (p->d[index] >= d) {
            if (p->d[index] == d)
                break;
            else
                index = (2 * index + 1);
        }
    }
}
void inorder_Tree(Node * p, int index)
{
    if (p->d[index] != NULL) {
        inorder_Tree(p, 2 * index + 1);
        cout << p->d[index] << " ";
        inorder_Tree(p, 2 * index + 2);
    }
}
int Tree_Search(Node * p, int d, int index)
{
    if (p == 0 || p->d[index] == d)
        return p->d[index];
    if (d < p->d[index])
        Tree_Search(p, d, 2 * index + 1);
    else
        Tree_Search(p, d, 2 * index + 2);
}
int main()
{
    setlocale(0, "");
    int size = 0;
    cout << "Введите размер дерева:  ";
    cin >> size;
    Node *root= new Node(size);
    int x, el = 0;
    cout << "Введите ";
    for (int i = 0; i < size; i++)
    {
        cin >> x;
        Tree_Insert(root, x);
    }
    cout << "Симметричный обход дерева ";
    inorder_Tree(root, 0); cout << endl;
    cout << "Искомый элемент: " << Tree_Search(root, el, 0) << endl;
 
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2019, 15:18
Ответы с готовыми решениями:

BST - операция изменения узла
Читаю здесь про BST. Дан код: def replaceNodeData(self,key,value,lc,rc): self.key = key ...

BST - операция добавления узла
Читаю здесь про BST. Зачем в put выделять случай пустого дерева? Разве экземпляры классов не...

Сделать функции рекурсивными (Одна функция поиска в списке а другая удаления узла из списка)
здраствуйте помогите пожалуйста сделать две функции рекурсивными я ломал голову но так и не вышло...

Что такое Y в псевдокоде удаления из BST?
Решил почитать про удаление из BST (именно посмотреть реализацию) в этой книге. Страница 14, вопрос...

0
18.12.2019, 15:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2019, 15:18
Помогаю со студенческими работами здесь

Скрипт удаления узла в DOM
Здравствуйте.Ситуация следующая ... . Загружается страница с картой. На карте большое количество...

Алгоритм удаления узла из бинарного дерева
Есть алгоритм удаления узла из бинарного дерева поиска,в нем ,если узел имеет 2 х сыновей...

Удаления узла из бинарного дерева поиска
Уже довольно много времени убил на эту задачу, теорию понимаю, на практике реализовать никак не...

Изменение атрибутов XML после удаления узла
Такая проблема &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;Animals&gt; &lt;Dinosaur ID=&quot;1&quot;&gt; ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru