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

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

Войти
Регистрация
Восстановить пароль
 
Dimon1994
Сообщений: n/a
#1

Написать структуру данных — сбалансированное дерево AVL - C++

22.03.2014, 22:09. Просмотров 183. Ответов 0
Метки нет (Все метки)

Нужно написать структуру данных - сбалансированное дерево AVL. Не получается с удалением (не работает именно удаление листа), на возврате из рекурсии происходит перебалансировка и получается зацикливание некоторого узла, что не так?

C++ (Qt)
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
    
 
node <T> * removeMin(node <T> * r) {
    if (r->left == nullptr)
        return r->right;
    r->left = removeMin(r->left);
    return balance(r);
}
 
template <typename T>
inline node <T> * AVL_tree <T> :: remove(node <T> * r, const T & k) {
    if (r == nullptr)
        return nullptr;
    if (k < r->data)
        r->left = remove(r->left, k);
    else if (k > r->data) 
            r->right = remove(r->right, k);
    else {
        node <T> * lf = r->left;
        node <T> * ri = r->right;
        delete r;
        if (ri == nullptr)
            return lf;
        node <T> * min = findMin(ri);
        min->right = removeMin(ri);
        min->left = lf;
        return balance(min);
    }
    return balance(root);
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 22:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать структуру данных — сбалансированное дерево AVL (C++):

Реализовать структуру данных «сбалансированное дерево поиска» - C++
Добрый вечер. Дали задание, не до конца ясна реализация, не могли бы подбросить пару шаблонов, или готовых решений, чтобы посмотреть на...

Написать функцию, которая вводит с клавиатуры сбалансированное дерево - C++
Помогите написать функцию, которая вводит с клавиатуры сбалансированное дерево. На С++

Ошибка компиляции. AVL-дерево - C++
#include &lt;iostream&gt; struct node { int key; node* left; node* right; }; class avl_tree { private:

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

Сбалансированное дерево - C++
Всем привет!) Для учебной практики требуется решить задачу: Написать программу в С++, суть заключается в следующем, нужно на форме...

AVL - дерево, ошибка линковки <LNK2001> - C++
Здравствуйте форумчане! У меня возникли некоторые трудности с линковщиком, помогите разобраться с ним, если не сложно:wall: Пытаюсь...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2014, 22:09
Привет! Вот еще темы с ответами:

Определить, является ли дерево AVL деревом - C++
int s, kol, sr, a; void avl(PNode ptr) { int h1 = 0, h2 = 0, i = 0; if ((ptr-&gt;Left == NULL) &amp;&amp; (ptr-&gt;Right == NULL)) { ...

Идеально сбалансированное дерево - C++
Всем привет. Нужно построить идеально сбалансированное дерево из букв, упорядоченное я сделал, но не могу понять, как сделать идеально...

Идеально сбалансированное дерево - C++
В файле input.txt хранится последовательность целых чисел.По входной последовательности построить идеально сбалансированное дерево и найти...

Идеально сбалансированное дерево - C++
Интересует как работает этот кусок кода) по идеи Create(&amp;tmp-&gt;right, nr); сюда компилятор никогда не доберется? и еще как она выходит из...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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