0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 6
1

Функция удаления всех четных элементов AVL-дерева

03.11.2015, 20:03. Показов 841. Ответов 3
Метки нет (Все метки)

Помогите допилить функцию удаления всех парных элементов АВЛ дерева.
Она сейчас удаляет только элементы, которые находятся в правой ветке. Я понимаю почему, но не понимаю как сделать, чтобы она по всему дереву прошлась.

Структура дерева:
C++
1
2
3
4
5
6
struct avl_node
{
    int data;
    struct avl_node *left;
    struct avl_node *right;
}*root;
А вот сама функция удаления всех парных элементов АВЛ дерева:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void avlTree::delall (avl_node **root)
{
 
        if ((*root)->data %2 != 0)     
        delall (&(*root)->left);  
    else                              
        if ((*root)->data %2 != 0)
            delall (&(*root)->right);
        else                        
       
    {
            avl_node *buf=(*root)->left;
            avl_node *t =(*root)->right;
            free (*root);           
            *root=t;               
            while (*root)
            root = &(*root)->left;
            *root = buf; 
        }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2015, 20:03
Ответы с готовыми решениями:

Функция удаления чётных элементов двусвязного списка
bool delete_even(circle_list *&list) {circle_list *curr=list, *first=list; *temp=NULL; if...

Функция подсчета четных элементов бинарного дерева
Требуется написать функцию подсчета количества четных узлов бинарного дерева

Функция удаления из очереди всех элементов равных последнему элементу
Определить новую полустатическую структуру данных (очередь). Описать стандартные операции по работе...

Функция удаления из списка всех элементов между минимальным и максимальным числом
Здравствуйте! Помогите написать функцию удаления всех элементов между минимальным и максимальным...

3
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 6
04.11.2015, 22:12  [ТС] 2
ребят ну захелпуйте пожалуйста, я знаю, что тут поменять пару строк нужно, просто не знаю как(
0
2641 / 2218 / 238
Регистрация: 03.07.2012
Сообщений: 8,047
Записей в блоге: 1
04.11.2015, 22:30 3
С Украины что ли?
0
494 / 376 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
05.11.2015, 02:05 4
Цитата Сообщение от Backtrolled Посмотреть сообщение
if ((*root)->data %2 != 0) * *
* * * * delall (&(*root)->left); *
* * else * * * * * * * * * * * * * * *
* * * * if ((*root)->data %2 != 0)
* * * * * * delall (&(*root)->right);
не знаю что тут происходит, но подозреваю что так

C++
1
2
3
4
5
if ((*root)->data %2 != 0) * * 
* * * * delall (&(*root)->left); *
* ** * * * * * * * * * * * * * *
if ((*root)->data %2 != 0)
* * * *  delall (&(*root)->right)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2015, 02:05
Помогаю со студенческими работами здесь

Функция удаления элемента из дерева
В данной программе реализовано почти все,кроме фунции удаления,которую я так и не смог реализовать....

Функция расчета среднего арифметического всех четных элементов одномерного массива
написать функцию расчета среднего арифметического всех четных элементов одномерного массива....

Функция удаления элемента из дерева, ошибка в коде
Добрый вечер, уважаемые программисты! :) Помогите, пожалуйста, понять где здесь ошибка. ...

Функция удаления листа (или ветки) бинарного дерева
Здравствуйте программисты! Учусь на первом курсе. Возникли проблемы с разработкой функции удаления...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru