Форум программистов, компьютерный форум CyberForum.ru

Найти среднее арифметическое узлов бинарного дерева целых чисел - C++

Восстановить пароль Регистрация
 
Zver26
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 15
24.06.2014, 19:51     Найти среднее арифметическое узлов бинарного дерева целых чисел #1
Помогите решить. Надо срочно!!!

Создать бинарное дерево целых чисел. Вывести на экран значение узлов и их среднее арифметическое
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2014, 19:51     Найти среднее арифметическое узлов бинарного дерева целых чисел
Посмотрите здесь:

Найти среднее арифметическое всех целых чисел на промежутке C++
C++ Найти среднее арифметическое квадратов всех целых чисел от 1 до b
C++ Найти среднее арифметическое квадратов всех целых чисел от 1 до 100
С++. В данном массиве с n целых чисел найти среднее арифметическое n / 2 крупнейших элементов C++
В массиве из целых чисел найти среднее арифметическое тех чисел, которые начинаются с цифры 5 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
25.06.2014, 01:35     Найти среднее арифметическое узлов бинарного дерева целых чисел #2
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
#include <iostream>
 
using namespace std;
 
template <typename typed> struct node
  {
  node *l, *r;
  typed v;
 
  node(node *l, node *r, const typed &v) : l(l), r(r), v(v) {}
  };
 
template <typename typed, typename ftype, typename restype> auto go(node<typed> *x, ftype f, restype zero = restype()) -> decltype(f(x, zero, zero))
  {
  return x ? f(x, go(x->l,f,zero), go(x->r,f,zero)) : zero;
  }
 
int main(void)
  {
  auto temp = go
               (
               new node<int> ( new node<int> ( new node<int> ( new node<int>(0, 0, 1), new node<int>(0, 0, 2),  3 ),
                                               new node<int> ( 0,                      new node<int>(0, 0, 4),  5 ),  6 ),
                               new node<int> ( new node<int> ( new node<int>(0, 0, 7), 0,                       8 ),
                                               new node<int> ( 0,                      new node<int>(0, 0, 9), 10 ), 11 ), 12),
               [](node<int> *x, pair<int, unsigned> l, pair<int, unsigned> r)
                 {
                 auto res = make_pair(x->v + l.first + r.first, 1 + l.second + r.second);
                 delete x;
                 return res;
                 },
              make_pair(0, 0)
               );
 
  cout << temp.first / (double)temp.second << endl;
 
  return 0;
  }
Zver26
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 15
25.06.2014, 01:53  [ТС]     Найти среднее арифметическое узлов бинарного дерева целых чисел #3
Можете добавить коментарии к коду?
Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
25.06.2014, 03:02     Найти среднее арифметическое узлов бинарного дерева целых чисел #4
А что непонятно?
Zver26
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 15
25.06.2014, 12:43  [ТС]     Найти среднее арифметическое узлов бинарного дерева целых чисел #5
Можете добавить в код вывод значения узлов дерева?
Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
25.06.2014, 15:15     Найти среднее арифметическое узлов бинарного дерева целых чисел #6
Перед delete x; можно вывести x->v.
Yandex
Объявления
25.06.2014, 15:15     Найти среднее арифметическое узлов бинарного дерева целых чисел
Ответ Создать тему
Опции темы

Текущее время: 11:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru