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

Высота n-нарного дерева - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Упорядочить последовательность методом простого выбора по фамилиям жителей. http://www.cyberforum.ru/cpp-beginners/thread269022.html
Разработать объект-вектор. В файле хранятся сведения о жителях некоторой улицы: фамилия, адрес, год рождения. Все сведения записываются в памяти в виде последовательности. Вводится некоторая текущая дата.В последовательности найти всех жителей, имеющих право участвовать в выборах( возраст >=18). Упорядочить последовательность методом простого выбора по фамилиям жителей. Полученные...
C++ Строка в С++ Дана строка в с++. Как вывести все слова , которые содержат заданную букву? http://www.cyberforum.ru/cpp-beginners/thread269021.html
C++ Числа
Дано натуральное число. Верно ли, что нет в нем цифр a.
Указатели C++
Здравствуйте. Прошу ответить на мои вопросы: 1)Как понять, когда именно нужно использовать указатели? Т.е. когда без них невозможно. 2)Это вопрос уже к про). Даже не знаю, как его сформулировать. Когда вы поняли, что поняли указатели, и знаете, как и, где их использовать? Сколько по времени заняло это? Вот у меня дана функция: char *step(char *p, char *&out){ int n=0; char *q; ...
C++ Передать двумерный массив в функцию http://www.cyberforum.ru/cpp-beginners/thread268981.html
подскажи те как передать двумерный массив в функцию?)
C++ Файлы Здоров Всем !! Мне нужно переписать из одного файла в другой до одноcтрочного комм.Как изменить? Пример : Это лежит в файле (text) : adaaww//wddd sad//hh Результат в другом файле (texty) : подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2797 / 1573 / 246
Регистрация: 03.05.2010
Сообщений: 3,649
03.04.2011, 01:05     Высота n-нарного дерева
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
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
template<size_t  N>
struct  T_node
{
    static const size_t  CHILDREN_TOTAL_MAX = N;
    //-----------------------------------------------------------------------------------
    typedef std::vector<T_node<N>*>  T_p_children;
    //-----------------------------------------------------------------------------------
    int           val_;
    T_p_children  p_children_;
    //-----------------------------------------------------------------------------------
    T_node(int  val) 
        : val_         (val),
          p_children_  (CHILDREN_TOTAL_MAX, 0)
    {}
    //-----------------------------------------------------------------------------------
    bool  add_child(T_node&  node)
    {
        T_p_children::iterator  zero_p_it 
            = std::find(p_children_.begin(), p_children_.end(), static_cast<T_node<N>*>(0));    
        bool  bool_res = zero_p_it != p_children_.end();
        if(bool_res)
        {
            *zero_p_it = &node;
        }
        return  bool_res; 
    }
    //-----------------------------------------------------------------------------------
    size_t  tree_height()
    {
        size_t  child_heght_max = 0;
        for(T_p_children::iterator  p_child_it = p_children_.begin();
            p_child_it != p_children_.end(); ++p_child_it)
        {
            if(*p_child_it == 0) continue;
            size_t  cur_child_heght = (*p_child_it)->tree_height();
            if(cur_child_heght > child_heght_max)
            {
                child_heght_max = cur_child_heght;
            }
        }
        return  1 + child_heght_max;
    }
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    typedef T_node<4>  T_node_4;
    T_node_4  tree(1);
    T_node_4  a(2);
    T_node_4  b(3);
    T_node_4  c(4);
    T_node_4  d(5);
 
    std::cout << "Высота дерева равна "
              << tree.tree_height()
              << "."
              << std::endl;
 
    tree.add_child(a);   
    tree.add_child(b);    
 
    std::cout << "Высота дерева равна "
              << tree.tree_height()
              << "."
              << std::endl;
 
    a.add_child(c);
    a.add_child(d);
 
    std::cout << "Высота дерева равна "
              << tree.tree_height()
              << "."
              << std::endl;
}
 
Текущее время: 12:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru