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

Отсортировать сбалансированное дерево по возрастанию

01.04.2021, 16:46. Показов 275. Ответов 0
Метки нет (Все метки)

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

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
83
84
85
86
87
88
89
90
91
92
#include <iostream>
 
using namespace std;
 
struct Node
    {
        int key;
        Node* Left;
        Node* Right;
    };
 
int data;
 
Node* MakeTree (int n)
    {
        Node* Tree;
        int n1, n2;
        if (n == 0)
            return 0;
        Tree = new Node;
        cin >> data;
        Tree->key = data;
        Tree->Left = 0;
        Tree->Right = 0;
        n1 = n/2;
        n2 = n-n1-1;
        Tree->Left = MakeTree (n1);
        Tree->Right = MakeTree (n2);
        return Tree;
    }
 
 
void PrintLKP (Node* Tree)
    {
        if (!Tree)
            return;
        PrintLKP (Tree->Left);
        cout << Tree->key << " ";
        PrintLKP (Tree->Right);
    }
 
float Average(Node* Tree)
    {
        if (!Tree)
            return 0;
         float sum = Average(Tree->Left) + Average(Tree->Right) + Tree->key;
        return sum;
    }
 
 
void AddToTree (Node*& Tree, int & data)
    {
        if (!Tree)
        {
            Tree = new Node;
            Tree->key = data;
            Tree->Left = Tree->Right = 0;
            return;
        }
        if (data < Tree->key)
            AddToTree (Tree->Left, data);
        else
            AddToTree (Tree->Right, data);
        return;
    }
 
void Sorting (Node* Tree)
    {
        if (!Tree)
            return;
        PrintLKP (Tree->Left);
        AddToTree(Tree, Tree->key);
        PrintLKP (Tree->Right);
        return;
    }
 
int main()
{
    setlocale(0, "");
    float n;
    cout << "Введите n: ";
    cin >> n;
    cout << "\nВведите элементы: \t\t";
    Node* Tree = MakeTree(n);
    cout << "\nСбалансированное дерево: \t";
    PrintLKP (Tree);
    cout << "\n\nСреднее арифметическое: \t" << Average(Tree) / n;
    cout << "\n\nСортированное дерево: \t\t";
    Sorting(Tree);
    cout << "\n";
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2021, 16:46
Ответы с готовыми решениями:

Сбалансированное дерево
Неупорядоченную последовательность из n различных чисел изобразить в виде сбалансированного дерева....

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

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

Сбалансированное не бинарное дерево
Каково определение сбалансированного произвольного, не бинарного дерева ? Например, для...

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

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

Сбалансированное дерево (бинарное)
кто сможет, пожалуйста напишите код с++, построения сбалансированного дерева,функцию добавления...

Идеально сбалансированное дерево
Дано идеально сбалансированное дерево. Нужно найти сумму его листьев. Дерево построил, но как...

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

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

Сбалансированное двоичное дерево поиска
ЗДРАВСТВУЙТЕ! Есть код. При компилировании выдаёт ошибку. Помогите исправить пожалуйста. avl.h...


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

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

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