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

Деревья. Высота узла в идеально сбалансированном дереве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести слова, стоящие на четных местах при проходе по списку в одном направлении http://www.cyberforum.ru/cpp-beginners/thread1154637.html
Помогите, пожалуйста, реализовать задачу на С++. Буду очень благодарен. Создать двусвязным список, элементами которого являются слова текстового файла. Вывести слова, стоящие на четных местах при проходе по списку в одном направлении, и слова на нечетных позициях при проходе в обратном направлении. Определить количество таких слов.
C++ Исключить из строки S все сдвоенные пробелы задание Дана строка S, состоящая из латинских букв, пробелов и знаков препинания, а также буквенные символы C1 и C2. Требуется: Исключить из строки S все сдвоенные пробелы Заменить в строке S все вхождения символа C1 на символ C2 Все согласные буквы в строке S сделать строчными Подсчитать количество гласных букв в строке S Подсчитать количество слов в строке S, начинающихся на согласную... http://www.cyberforum.ru/cpp-beginners/thread1154633.html
C++ Ввести текст и проанализировать посимвольно
добрый вечер нужно отредактировать код прогдамым. что бы он работал, и вводился текст и анализировался с пробелами( от сисвола к символу), и выводился обратно. #include "stdafx.h" #include <locale> #include <windows.h> #include <iostream> #include <string> #include <sstream> using namespace std;
C++ Моделирование тренировки спортсмена в тире
Спортсмен тренируется в тире. Определить: a) наибольшую разность между двумя соседними результатами; b) самую длинную непрерывную последовательность неудачных выстрелов, ко- гда стрелок показывал свой наихудший результат; c) самый длинный период, в течение которого результат не менялся.
C++ Перевод из десятичной системы в двоичную http://www.cyberforum.ru/cpp-beginners/thread1154611.html
Пробую написать прогу которая переводит из 10 в 2, но #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main() {
C++ Записать в выходной файл в алфавитном порядке построчно все идентификаторы, встречающиеся в этой программе Выполнить задания с использованием подходящих связанных динамических структур данных: Есть программа на С++. Записать в выходной файл в алфавитном порядке построчно все идентификаторы, встречающиеся в этой программе, указав количество появлений для каждого идентификатора и номера строк программы, в которых они встречаются. Помогите придумать алгоритм решения задачи подробнее

Показать сообщение отдельно
nasty1996
1 / 1 / 0
Регистрация: 28.11.2012
Сообщений: 8
22.04.2014, 22:10     Деревья. Высота узла в идеально сбалансированном дереве
Нужно найти высоту заданного узла, в идеально сбалансированном дереве.
Вот мои наброски не знаю как делать

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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include<fstream>
using namespace std;
ifstream in("input.txt");
ofstream out ("output.txt");
//int a=0;
int h=0;
struct Ttree {int inf; Ttree * left, * right;};
 
//прямой обход
void preorder (Ttree *tr)
{
    if (tr) {
        cout<< tr->inf<<" ";
        preorder (tr->left);
        preorder (tr->right);
    }
}
// postroenie
void creat (int n,Ttree *&tr)
{
    int a;
    if (n>0){
        tr=new Ttree;
        in>>a;
        tr->inf =a;
        tr->left=tr->right=NULL;
        int nl=n/2, nr=n-nl-1;
        creat (nl,tr->left);
        creat (nr,tr->right);
 
    }
}
void height_tree (Ttree *tr, int &theight, int &height)
{
    if (tr) //если текущей узел не пустой
    {
        if (theight>height) //и высота текущего узла больше высоты дерева, то
            height=theight;// полагаем в качестве высоты дерева высоту текущего узла
        theight ++; //увеличиваем высмоту текущего узла
        height_tree(tr->left,theight,height); //обходим левое и правое его поддеревья
        height_tree (tr->right,theight,height);
        theight --;
    } else theight--; //после обхода узла высоту текущего узла уменьшаем на 1
}
 
void search1 (int x,Ttree *tr, int & code, int &theight)
{
 
    if (tr)
         {
            if (x==tr->inf)
            {
                cout <<endl << tr->inf;code = 1;
            }
    else
        {
 
            search1(x,tr->left, code, theight);
            search1(x,tr->right, code, theight);
            theight ++;
          }
    }
}
 
void del_tree(Ttree *&tr)
{
    if (tr)
    {
        del_tree(tr->left);
        del_tree (tr->right);
        delete tr;
        tr=NULL;
    }
}
 
 
 
 
int main ()
{
    int n;
    int x;
    in >> n >> x;
    Ttree *tree = NULL;
    creat (n,tree);
    preorder(tree);
    int code = 0;
 
    search1 (x,tree, code, h);
    if(!code) cout<<"";
    //height_tree(tree,a,h);
    cout<<endl<<h;
    del_tree(tree);
    in.close();
    out.close();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru