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

Создать класс "Дерево" и метод, который выводит сумму узлов дерева

13.04.2016, 10:35. Показов 3089. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет ребят.выручайте.
Создать класс "Дерево" и метод, который выводит сумму узлов дерева
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2016, 10:35
Ответы с готовыми решениями:

Разработать класс "Массив больших чисел", который состоит из объектов класса "Большие целые числа". Найти сумму элементов массива.
Разработать класс "Массив больших чисел", который состоит из объектов класса "Большие целые числа"....

Написать метод, который выводит название "criteria_ready_lvl", если значение не удовлетворяет минимальному порогу
Здравствуйте, мне нужно написать метод, который выводит название "criteria_ready_lvl" если значение...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс"
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления"
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс...

1
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
13.04.2016, 14:54 2
Лучший ответ Сообщение было отмечено Igor11 как решение

Решение

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
93
94
95
#include <iostream>
#include <cstdlib>
 
 
template<class T>
class tree {
    struct node {
        T     val;
        node* left;
        node* right;
    };
private:
    node*  tr;
    size_t cnt;
public:
    tree(void):tr(NULL), cnt(0){}
    tree(const tree&);
    ~tree(){
        clear();
    }
public:
 
    //вставка
    bool insert(const T& val){
        node* p = tr, *i = tr;
        while(i != NULL){
            p = i;
            if(val < i->val)
                i = i->left;
            else if(val > i->val)
                i = i->right;
            else
                return false;
        }
 
        node* n = new (std::nothrow) node();
        if(n != NULL){
            n->val  = val;
            n->left = n->right = NULL;
 
            if(p == NULL)
                tr = n;
            else if(val < p->val)
                p->left  = n;
            else
                p->right = n;
            ++cnt;
        }
        return (n != NULL);
    }
 
    //сумма элементов(метод, который выводит сумму узлов дерева)
    T get_sum(void) {
        return __sum(tr);
    }
 
    //удаление всех
    void clear(void){
        __clear(tr);
        tr  = NULL;
        cnt = 0;
    }
 
private:
 
    T __sum(const node* p){
        if(p != NULL)
            return p->val + __sum(p->left) + __sum(p->right);
        return 0;
    }
 
    void __clear(node* p){
        if(p != NULL){
            if(p->left != NULL)
                __clear(p->left);
            if(p->right != NULL)
                __clear(p->right);
            delete p;
        }
    }
 
    size_t getSize(void) const { return cnt; }
    //...
};
 
 
int main(void){
    tree<size_t> tr;
    for(int i = 0; i < 30; ++i)
        tr.insert((size_t)(rand() % 40));
 
    std::cout << "sum: " << tr.get_sum() << std::endl;
    tr.clear();
    return 0;
}
Пример работы кода
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2016, 14:54
Помогаю со студенческими работами здесь

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания"
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько...

Создать класс "дерево"для представления арифметического выражения
Создать класс &quot;дерево&quot; для представления арифметического выражения, каждый из узлов которого...

Создать базовый класс "Садовое дерево"
Создать базовый класс «Садовое дерево» и производные классы «Яблоня», «Вишня», «Груша». С помощью...

Класс "Строка" содержащий метод, который меняет местами первый и последний символы строки
Написать программу чтобы первый и последний символы строки менялись местами. На экран выводился...


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

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

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