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

Найти в дереве самое широкое (узкое) поддерево имеющее заданную высоту - C++

Восстановить пароль Регистрация
 
PtahaS
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 3
30.05.2011, 16:12     Найти в дереве самое широкое (узкое) поддерево имеющее заданную высоту #1
Помогите пожалуйста,нужно найти в дереве самое широкое (узкое) поддерево имеющее заданную высоту.
Ввожу дерево таким образом
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
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
struct Tree {
    int id;                 //уникальное значение
    int level;              //уровень в иерархии
 
    int count_son;          //количество сыновей
    struct Tree** son;      //массив указателей на сыновей
};
 
/*---------Создание дерева----------*/
struct Tree *createTree(struct Tree *node, int id, int level){
    //node = new Tree;
    node->id = id;
    node->level = level;
 
    cout << "\nСколько сыновей у (" << (node->level) << "-" << (node->id) << "): ";
    cin >> (node->count_son);
    node->son = new struct Tree *[node->count_son];
 
 
    level++;
 
    for(int i = 0; i < ( node->count_son); i++){
        node->son[i] = new Tree;
        node->son[i]->id = id + i;
        node->son[i]->level = level;
    }
    for(int i = 0; i < (node->count_son); i++)
        createTree(node->son[i], id + i, level);
    return node;
 
}
/*---------Вывод дерева----------*/
void printTree(struct Tree *node){
    if(node){
        for(int i = 0; i < (node->level); i++)
            cout << "|  ";
        if(node->son != NULL)
            cout << "[+]";
        cout << "(" << (node->level) << "-" << (node->id) << ")" << endl;
 
        if((node->count_son) != 0)
            for(int i = 0; i < (node->count_son); i++)
                    printTree(node->son[i]);
    }
}
 
int main()
{
    Tree *root;
    root = new Tree;
 
    root = createTree(root, 0, 0);
    printTree(root);
 
 
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 16:12     Найти в дереве самое широкое (узкое) поддерево имеющее заданную высоту
Посмотрите здесь:

Строки: найти самое короткое и самое длинное слово C++
C++ Найти поддерево, для всех вершин которого выполняется правило
C++ Найти самое короткое и самое длинное слово в строке
матрица 8X8 (найти самое большое и самое маленькое число) C++
Найти самое длинное и самое короткое слово в тексте C++
C++ Найти на отрезке [m, n] натуральное число, имеющее наибольшее количество делителей
C++ Найти самое короткое и самое длинное слово в строке
Найти самое короткое и самое длинное слово C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sly_Fox
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 2
16.03.2014, 23:06     Найти в дереве самое широкое (узкое) поддерево имеющее заданную высоту #2
Решение не нашлось?
Yandex
Объявления
16.03.2014, 23:06     Найти в дереве самое широкое (узкое) поддерево имеющее заданную высоту
Ответ Создать тему
Опции темы

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