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

ребят!)бинарное дерево - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Значение функции http://www.cyberforum.ru/cpp-beginners/thread713482.html
Нужно вычислить и вывести на экран значение функции z= 5*x+y, если x>y z= cos(x), если x=y z= -2sin(y), если y-10<x<y z= 0, если x<=y-10 Значения x и y вводить с клавиатуры. С него...
C++ "Двойной" доступ к переменным класса Господа, прошу совета в изложенной ниже ситуации. Часто мне встречается в различных вариациях, поэтому есть потребность в изящном решении. Итак, есть, допустим, такой класс: class... http://www.cyberforum.ru/cpp-beginners/thread713474.html
C++ С++, какую среду разработки выбрать?
Появилось желание изучить язык программирования. Собственно, интересует какая разница, и существует ли она вообще между С++ и Visual C++? Какую среду разработки используют профессиональные...
Описать структуру ZNAK C++
Описать структуру ZNAK, содержащую следующие поля: • Фамилия, имя • Знак зодиака • Дата рождения (массив из 3 чисел). Программа должна выполнять следующие действия: • Ввод с клавиатуры данных в...
C++ CUDA на примерах http://www.cyberforum.ru/cpp-beginners/thread713430.html
Скомпилировал из данной книги несколько вариантов программы(не важно какой): с глобальной, константной, текстурной памятью. Измерил, как описано в коде, время выполнения кода CUDA функциями:...
C++ Сортировка массива указателей на абстрактный базовый класс Я создал абстрактный базовый класс (с названием Base) и два производных класса (с названиями Two и Three). После инициализации объектов производных классов каждый из этих объектов имеет два... подробнее

Показать сообщение отдельно
olenya21
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 13

ребят!)бинарное дерево - C++

29.11.2012, 17:47. Просмотров 348. Ответов 3
Метки (Все метки)

может кто знает как в С++ в программу впихнуть переводчик...??с русского на английский??может кто делал уже помогите..приведите пример хотя бы на одном слове..вводишь русское-выдёт англ..вот сам текст программы..
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <iostream>
using namespace std;
struct node
{
    int Key;
    int Count;
    node *Left;
    node *Right;
};
 
class TREE
{ 
private:
    node *Tree; //Указатель на корень дерева.
    void Search (int,node**);
public:
    TREE() 
    {
        Tree=NULL;
    }
    node** GetTree () 
    {
        return &Tree;
    } //Получение вершины дерева.
    void BuildTree ();
    void CleanTree (node **);
    void ObhodEnd (node **);
    void ObhodLeft (node **);
    void ObhodBack (node **);
    void Vyvod (node**,int);
    int Height (node**);
};
int main ()
{ 
    TREE A;
    A.BuildTree ();
    cout<<"\nVyvod Dereva:\n";
    A.Vyvod (A.GetTree(),0);
    cout<<"\nVysota dereva:"<<A.Height(A.GetTree())<<endl;
    cout<<"\nLevostoronnyi obhod dereva: ";
    A.ObhodLeft (A.GetTree());
    cout<<"\nKonsevoy obhod dereva: "; A.ObhodEnd (A.GetTree());
    cout<<"\nObratniy obhod dereva: "; A.ObhodBack (A.GetTree());
    A.CleanTree (A.GetTree());
    system("pause");
    return 0;
}
void TREE::BuildTree ()
{
    int el;
    cout<<"Vvedite slovo ...\n";
    cin>>el;
    while (el!=0)
    {
        Search (el,&Tree); cin>>el;
    }
}
void TREE::Search (int x,node **p)
{
    if (*p==NULL)
    {
        *p = new(node);
        (**p).Key = x; (**p).Count = 1;
        (**p).Left = NULL; (**p).Right = NULL; 
    }
    else
        if (x<(**p).Key) Search (x,&((**p).Left));
        else
            if (x>(**p).Key) Search (x,&((**p).Right));
            else (**p).Count = (**p).Count + 1;
}
void TREE::ObhodLeft (node **w)
{
    if (*w!=NULL)
    {
        cout<<(**w).Key<<" ";
        ObhodLeft (&((**w).Left));
        ObhodLeft (&((**w).Right));
    }
}
void TREE::ObhodEnd (node **w)
    //Концевой обход дерева.
    //*w - указатель на корень дерева.
{
    if (*w!=NULL)
    {
        ObhodEnd (&((**w).Left));
        ObhodEnd (&((**w).Right));
        cout<<(**w).Key<<" ";
    }
}
void TREE::ObhodBack (node **w)
    //Обратный обход дерева.
    //*w - указатель на корень дерева.
{ 
    if (*w!=NULL)
    { 
        ObhodBack (&((**w).Left));
        cout<<(**w).Key<<" ";
        ObhodBack (&((**w).Right));
    }
}
void TREE::CleanTree (node **w)
    //Очистка дерева.
    //*w - указатель на корень дерева.
{ 
    if (*w!=NULL)
    { 
        CleanTree (&((**w).Left));
        CleanTree (&((**w).Right));
        delete *w;
    }
}
void TREE::Vyvod (node **w,int l)
    //Изображение дерева *w на экране дисплея
    // (рекурсивный алгоритм).
    //*w - указатель на корень дерева.
{ 
    int i;
    if (*w!=NULL)
    { 
        Vyvod (&((**w).Right),l+1);
        for (i=1; i<=l; i++) cout<<" ";
        cout<<(**w).Key<<endl;
        Vyvod (&((**w).Left),l+1); 
    }
}
int TREE::Height (node **w)
    //Определение высоты бинарного дерева.
    //*w - указатель на корень дерева.
{ 
    int h1,h2;
    if (*w==NULL) return (-1);
    else
    {
        h1 = Height (&((**w).Left));
        h2 = Height (&((**w).Right));
        if (h1>h2) return (1 + h1);
        else return (1 + h2);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru