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

Создать бинарное дерево целых чисел

18.04.2021, 18:06. Показов 1629. Ответов 1
Метки c++ (Все метки)

Author24 — интернет-сервис помощи студентам
Создать бинарное дерево целых чисел. Определить максимальное значение узла дерева.

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
#include <iostream>
 
struct node {
    node* left;
    node* right;
    int   val;
    node(int v):left(NULL),right(NULL), val(v){}
};
 
const node* node_max(const node* tr);
void node_add(node*& tr, int val);
void node_clear(node* tr);
 
int main(void){
    node* tr = NULL;
 
    int a[] = { 5, 4, 8, 3, 7, 2, 1 };
    for(unsigned i = 0; i < sizeof(a)/sizeof(a[0]); ++i)
        node_add(tr, a[i]);
 
    const node* pmax = node_max(tr);
    if(pmax != NULL)
        std::cout << "max: " << pmax->val << std::endl;
 
    node_clear(tr);
    std::cin.get();
    return 0;
}
 
//максимум
const node* node_max(const node* tr){
    if(tr == NULL)
        return NULL;
 
    const node* p = tr;
    while(p->right != NULL)
        p = p->right;
    return p;
}
 
//вставка
void node_add(node*& tr, int val){
    node** p = &tr;
    node*  i = tr;
    while(i != NULL){
        if(val < i->val){
            p = &i->left;
            i = i->left;
        } else if(val > i->val){
            p = &i->right;
            i = i->right;
        } else
            return;
    }
    *p = new node(val);
}
 
//очистка
void node_clear(node* tr){
    if(tr != NULL){
        if(tr->left != NULL)
            node_clear(tr->left);
        if(tr->right != NULL)
            node_clear(tr->right);
        delete tr;
    }
}
Уже была такая тема, но я не знаю, как создать в этом коде вывод самого дерева.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2021, 18:06
Ответы с готовыми решениями:

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при...

Создать бинарное дерево
Есть обычное дерево. Узел описывается struct nod int Value; int Number_Of_Sons; nod *Son ...

Создать бинарное дерево
Ребята, помогите с такое задачей : нужно написать ф-цию для построения бинарного дерево...

Бинарное дерево создать функцию
Как переделать функцию для бинарного дерева int SumDigit(char *str) { int sum = 0; for (int...

1
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
18.04.2021, 18:14 2
Лучший ответ Сообщение было отмечено DenySmirnov как решение

Решение

Цитата Сообщение от DenySmirnov Посмотреть сообщение
Уже была такая тема, но я не знаю, как создать в этом коде вывод самого дерева.
Аналогично node_clear, только вместо delete поставить вывод.
1
18.04.2021, 18:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2021, 18:14
Помогаю со студенческими работами здесь

Создать шаблонный класс «бинарное дерево»
Создать шаблон класса «бинарное дерево». Использовать его для сортировки целых чисел и строк,...

Создать шаблонный класс «бинарное дерево»
Создать шаблон класса «бинарное дерево». Использовать его для сортировки целых чисел и строк,...

На основе вводимой с клавиатуры последовательности чисел до первого нуля формируется бинарное дерево поиска
Страшно каюсь, не подумайте что я ленивый тюлень и мне не хочется вникать в тему, обычно я никогда...

Можно ли создать бинарное дерево поиска с элементами, которые являют собой имена или же что-то другое (НЕ числа)
Если да, как это сделать ? Киньте ссылку/напишите тут, если не сложно. Заранее спасибо!

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Дан файл целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла.
Задачу нужно решить в Borland C++ 3.11 Дан файл целых чисел. Создать новый файл целых чисел,...


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

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