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

ребят!)бинарное дерево - 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 EnumerousVariables { public: EnumerousVariables(); ~EnumerousVariables(); TypeA& getA() const; TypeB& getB() const; http://www.cyberforum.ru/cpp-beginners/thread713474.html
C++ С++, какую среду разработки выбрать?
Появилось желание изучить язык программирования. Собственно, интересует какая разница, и существует ли она вообще между С++ и Visual C++? Какую среду разработки используют профессиональные программисты?
Описать структуру ZNAK C++
Описать структуру ZNAK, содержащую следующие поля: • Фамилия, имя • Знак зодиака • Дата рождения (массив из 3 чисел). Программа должна выполнять следующие действия: • Ввод с клавиатуры данных в массив, состоящий из n элементов типа ZNAK; записи должны быть упорядочены по датам рождения; • Вывод на экран информации о человеке, чья фамилия введена с клавиатуры; Если такого нет, выдать на...
C++ CUDA на примерах http://www.cyberforum.ru/cpp-beginners/thread713430.html
Скомпилировал из данной книги несколько вариантов программы(не важно какой): с глобальной, константной, текстурной памятью. Измерил, как описано в коде, время выполнения кода CUDA функциями: cudaEventCreate(), cudaEventRecord(), cudaEventElapsedTime() на старой паршивой карте: Asus NVidia GeForce 8500 GT. Все работает и время выполнения каждого варианта получаю разное,-в зависимости от...
C++ Сортировка массива указателей на абстрактный базовый класс Я создал абстрактный базовый класс (с названием Base) и два производных класса (с названиями Two и Three). После инициализации объектов производных классов каждый из этих объектов имеет два данных-члена: string и double. Вопрос: как можно организовать сортировку всех созданных объектов (и объектов Two, и объектов Three)? Первое мое действие - я создаю массив указателей на АБК Base и помещаю в... подробнее

Показать сообщение отдельно
igorrr37
 Аватар для igorrr37
1599 / 1227 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
30.11.2012, 17:09     ребят!)бинарное дерево
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
#include <iostream>
#include <Windows.h>
#include <string>
 
class Translator
{
private:
    struct Node
    {
        Node(std::string const& rus, std::string const& eng) :
            pl(0), pr(0), rus_(rus), eng_(eng){}
        Node* Insert(std::string const& rus, std::string const& eng)
        {
            Node* pret = 0;
            if(rus < rus_)
            {
                if(!pl)
                {
                    pl = new Node(rus, eng);
                    pret = pl;
                }
                else
                {
                    pret = pl->Insert(rus, eng);
                }
            }
            else if(rus > rus_)
            {
                if(!pr)
                {
                    pr = new Node(rus, eng);
                    pret = pr;
                }
                else
                {
                    pret = pr->Insert(rus, eng);
                }
            }
            return pret;
        }
        std::string GetEng(std::string const& rus)
        {
            std::string sret;
            if(rus == rus_)
                sret = eng_;
            else if(rus < rus_)
            {
                if(pl)
                    sret = pl->GetEng(rus);
            }
            else
            {
                if(pr)
                    sret = pr->GetEng(rus);
            }
            return sret;
        }
        void Cleanup()
        {
            if(pl)
            {
                pl->Cleanup();
                pl = 0;
            }
            if(pr)
            {
                pr->Cleanup();
                pr = 0;
            }
            delete this;
        }
        std::string rus_, eng_;
        Node* pl, *pr;
    };
public:
    Translator() : p_(0){}
    Node* Insert(std::string const& s1, std::string const& s2)
    {
        Node* pret = 0;
        if((s1[0] > 0 && s2[0] < 0) || (s1[0] < 0 && s2[0] > 0))
        {
            std::string const& rus(s1[0] < 0 ? s1 : s2);
            std::string const& eng(s1[0] > 0 ? s1 : s2);
            if(!p_)
            {
                p_ = new Node(rus, eng);
                pret = p_;
            }
            else
            {
                pret = p_->Insert(rus, eng);
            }
        }
        return pret;
    }
    std::string GetEng(std::string const& rus) const
    {
        std::string sret;
        if(p_)
        {
            sret = p_->GetEng(rus);
        }
        return sret;
    }
    void Cleanup()
    {
        if(p_)
        {
            p_->Cleanup();
            p_ = 0;
        }
    }
private:
    Node* p_;
    Translator(Translator const&);
    Translator& operator=(Translator);
};
 
int main()
{
    SetConsoleOutputCP(1251);
    Translator d;
    d.Insert("красный", "red");
    d.Insert("black", "чёрный");
    d.Insert("зелёный", "green");
    d.Insert("white", "белый");
    std::cout << d.GetEng("красный") << std::endl;
    std::cout << d.GetEng("чёрный") << std::endl;
    std::cout << d.GetEng("серый") << std::endl;
    std::cout << d.GetEng("красный") << std::endl;
    std::cout << d.GetEng("зелёный") << std::endl;
    d.Cleanup();
    return 0;
}
 
Текущее время: 14:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru