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

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

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

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

30.05.2011, 16:12. Просмотров 645. Ответов 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 16:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти в дереве самое широкое (узкое) поддерево имеющее заданную высоту (C++):

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

Найти самое короткое слово, заканчивающееся на заданную букву - C++
найти самое короткое слово, которое заканчивается на букву 'd' строку брать как символьный массив помогите пожалуйста

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

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

Определить содержится ли в строке слово,имеющее заданную длину - C (СИ)
Здравствуйте! Очень надеюсь на вашу помощь. Необходимо написать программу для ввода строки, обработки строки и вывода результата.Выбор...

В строке найти самое длинное слово оканчивающееся на заданную букву - Turbo Pascal
Помогите данную задачу оформить с помощью процедуры uses crt; Const mn=; Var s,sl,max:string; ch:char; i:byte; Begin ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sly_Fox
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 2
16.03.2014, 23:06 #2
Решение не нашлось?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2014, 23:06
Привет! Вот еще темы с ответами:

В строке найти самое длинное слово оканчивающееся на заданную букву - Pascal
В строке найти самое длинное слово оканчивающееся на заданную букву (в программе паскаль и на блок схемах)...Заранее спасибо)*

Определить функцию, которая ищет заданную вершину в дереве - Lisp
Помогите, пожалуйста, с заданием! Определить функцию, которая ищет заданную вершину в дереве и возвращает список, содержащий предка...

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

Найти объем, высоту пирамиды, высоту треугольника, объем пар-да, угол между векторами - Геометрия
даны координаты точек a, b, c, d Найти: а) обьём пирамиды, построенной на векторах AB AC AD б) высоту пирамиды, опущенную из вершины...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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