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

Найти максимальную сумму элементов на ярусе дерева

10.06.2016, 16:44. Показов 1465. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти максимальную сумму элементов на ярусе дерева
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2016, 16:44
Ответы с готовыми решениями:

Дан двумерный массив.посчитать сумму элементов в кажой строке. найти максимальную и минимальную сумму и помень эти строки местами.
Дан двумерный массив.посчитать сумму элементов в кажой строке. найти максимальную и минимальную...

Найти максимальную сумму элементов строки матрицы
Данный двумерный массив. найти: а) максимальную сумму элементов строки; б) минимальную сумму...

Найти максимальную сумму непрерывных 10 элементов массива
помогите правильно найти максимальный элемент массива. спасибо! #include <iostream> #include...

Найти максимальную сумму непрерывных 10 элементов массива
Помогите найти максимальную сумма 10 элементов массива. спасибо! #include <iostream> #include...

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

Решение

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
96
97
98
#include <iostream>
 
struct node {
    node* left;
    node* right;
    int   val;
};
void bst_insert(node*& tr, int val);
void bst_clear(node* tr);
int  bst_height(const node* tr);
int  bst_sum_at(const node* tr, int i, int l);
int  bst_maxsum(const node* tr, int& sum);
 
 
int main(void){
    node* tr = NULL;
    
    int a[] = { 5,4,2,0,1,3,7,9,6,8 };
    int n   = sizeof(a)/sizeof(a[0]);
    for(int p = 0; p < n; ++p)
        bst_insert(tr, a[p]);
 
    int sum;
    int i = bst_maxsum(tr, sum);
    if(i != -1){
        std::cout << "level N: " << i << std::endl
                  << "max sum: " << sum << std::endl;
    }
    bst_clear(tr);
    return 0;
}
 
//максимальная сумма
int bst_maxsum(const node* tr, int& sum){
    int m, n, s, l = -1; 
    if(tr == NULL)
        return -1;
 
    n = bst_height(tr);
    s = bst_sum_at(tr, 0, 0);
    for(int i = 1; i < n; ++i){
        m = bst_sum_at(tr, 0, i);
        if(m > s){
            s = m;
            l = i;
        }
    }
    sum = s;
    return l;
}
 
//вставка
void bst_insert(node*& tr, int val){
    if(tr == NULL){
        tr = new (std::nothrow) node();
        if(tr != NULL){
            tr->left = tr->right = NULL;
            tr->val  = val;
        }
    } else if(val < tr->val)
        bst_insert(tr->left, val);
    else if(val > tr->val)
        bst_insert(tr->right, val);
}
 
//удаление всех
void bst_clear(node* tr){
    if(tr != NULL){
        bst_clear(tr->left);
        bst_clear(tr->right);
        delete tr;
    }
}
 
//сумма на указанном уровне
int bst_sum_at(const node* tr, int i, int l){
    int s = 0;
    if(tr != NULL){
        if(i == l)
            s += tr->val;
        else if(i < l){
            s += bst_sum_at(tr->left,  i + 1, l);
            s += bst_sum_at(tr->right, i + 1, l);
        }
    }
    return s;
}
 
//высота дерева
int bst_height(const node* tr){
    int l, r;
    if(tr != NULL){
        l = bst_height(tr->left);
        r = bst_height(tr->right);
        return ((l > r) ? l : r) + 1;
    }
    return 0;
}
1
10.06.2016, 22:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2016, 22:16
Помогаю со студенческими работами здесь

Найти максимальную сумму элементов случайного массива
Здравствуйте помогите пожалуйста решить задачу! Задача: Найти МАКСИМАЛЬНУЮ сумму элементов...

Найти максимальную сумму значений элементов строки в массиве
#define _CRT_SECURE_NO_WARNINGS #define _CRT_NONSTDC_NO_WARNINGS #include &lt;stdio.h&gt;...

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

Классы. Найти сумму элементов каждого столбца матрицы и определить максимальную
Создайте класс в соответствии с условием задачи. Определите функции-члены класса для установки и...


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

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