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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PtahaS
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 3
#1

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

30.05.2011, 16:12. Просмотров 631. Ответов 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++
найти самое короткое слово, которое заканчивается на букву 'd' строку брать как символьный массив помогите пожалуйста

Найти поддерево двоичного поиска с максимальным количеством элементов - C++
Написать программу, которая формирует произвольно бинарное дерево, выводит построенное дерево на экран и затем в сформированном дереве...

Найти поддерево, для всех вершин которого выполняется правило - C++
Здравствуйте. Есть задание: Найти поддерево, для всех вершин которого выполняется правило, если – (i) – k – ый сын (j), то (i) не имеет...

Найти самое большое и самое маленькое число в матрице - C++
нужно найти из этой матрицы само большое и самое маленькое число пожалуйста с коментариями

Найти самое короткое и самое длинное слово C++ - C++
Нужно написать программу, которая будет находить самое короткое и самое длинное слово в строке используя тип char.

Найти на отрезке [m, n] натуральное число, имеющее наибольшее количество делителей - C++
Найти на отрезке натуральное число, имеющее наибольшее количество делителей.

В заданном предложении найти слово, имеющее наибольшее число вхождений - C++
Среди слов заданного предложения, которые не является сериями, найти такое, которое имеет наибольшее число вхождений в предложение. P.S....

Найти сумму листьев в бинарном дереве поиска - C++
Дано бинарное дерево поиска(ключи-целые числа).Найти сумму листьев. Вот мой код.Но он не работает.Скажите почему и исправьте.Спасибо ...

Найти высоту дерева - C++
Написать программу. Высота дерева k миллиметров. Найти высоту этого дерева в полных метрах и полных сантиметрах. Например: 12345мм это...

В бинарном дереве найти ближайший путь к заданному узлу - C++
В заданном непустом бинарном дереве найти длину (число ветвей) пути от корня до ближайшей вершины со значением, равным заданному....

Найти всех двойников в данном целочисленном бинарном дереве - C++
Здравствуйте,нужна помощь в задаче:назовем пару различных вершин дерева двойниками,если их значения и уровни совпадают.Найти всех двойников...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru