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

Построить бинарное дерево - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция с++ (работа с длинными числами - вывод результата в файл) http://www.cyberforum.ru/cpp-beginners/thread909314.html
У меня есть проэкт с++ который использует динамическую библиотеку для работы с длинными числами. В проэкте я перегружаю операторы +,-, ... с использованием функций библиотеки. Всё вроде работает нормально. Но в конце, когда вывожу результат в файл длина результата такая как и должна быть, но если он длиннее 43 символов то остаются только последние 43 символа все остальные меняються на 0:...
C++ Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.) Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма. Максимально использовать наследование и полиморфизм. http://www.cyberforum.ru/cpp-beginners/thread909307.html
Полиморфизм (дан текстовый файл с элементами разметки HTML) C++
Задание по полиморфизму. Не могу понять, на основе чего его писать, в чем здесь может быть отличие? Текст с тегами и текст без тегов? Помогите, пожалуйста. Дан текстовый файл с элементами разметки HTML: теги <b>...</b>, <i>...</i>, <u>...</u>. Тестовый редактор с хранением истории команд для отмены/возврата действий поддерживает следующие операции над текстом: Переход к заданной позиции...
Перевод из одной системы счисления в другую от 2 до 36 C++
Помогите пожалуйсто, сколько сижу ничего стоющего не приходит в голову! Дано целое неотрицательное число в I-ричной системе счисления. Вывести это число в J-ричной системе счисления. Ограничения: 2 <= I, J <= 36, для представления цифр 10...35 используются прописные латинские буквы A...Z соответственно, число разрядов исходного числа не превышает 1000. При вводе: В первой строке находятся числа...
C++ вычисление суммы ряда из 10 чисел http://www.cyberforum.ru/cpp-beginners/thread909276.html
срочно нужно на экзамене сижу, а как делать фиг знает 3 задание
C++ выделение памяти под структуру enrollee *p=new enrollee; после работы delete p; выбивает ошибку. неправильно очищаю??? подробнее

Показать сообщение отдельно
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
22.06.2013, 15:57     Построить бинарное дерево
вот не сортированное
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
#include <iostream>
#include <string>
#include <cstdlib>
#include <iomanip>
 
template<class T>
struct Node
{
    Node(T const& data) : _data(data), pleft(0), pright(0), cleft(0), cright(0) {}
 
    void insert(T const& rhs)
    {
        if(cleft <= cright)
        {
            if(!pleft)
                pleft = new Node(rhs);
            else
                pleft->insert(rhs);
            ++cleft;
        }
        else
        {
            if(!pright)
                pright = new Node(rhs);
            else
                pright->insert(rhs);
            ++cright;
        }
    }
 
    void print(std::ostream& ost, size_t const level = 0) const
    {
        if(pleft)
            pleft->print(ost, level + 1);
        ost << std::setw(level * 4) << _data << '\n';
        if(pright)
            pright->print(ost, level + 1);
    }
 
    T _data;
    Node* pleft, *pright;
    size_t cleft, cright;
};
 
template<class T>
class Tree
{
public:
 
    Tree() : proot(0) {}
 
    void insert(T const& rhs)
    {
        if(!proot)
            proot = new Node<T>(rhs);
        else
            proot->insert(rhs);
    }
 
    friend std::ostream& operator<< (std::ostream& ost, Tree const& rhs)
    {
        if(rhs.proot)
            rhs.proot->print(ost, 0);
        return ost;
    }
 
    ~Tree()
    {
        deleteFromNode(proot);
    }
 
private:
 
    Node<T>* proot;
 
    Tree(Tree const&);
 
    Tree& operator=(Tree);
 
    void deleteFromNode(Node<T>*& pnode)
    {
        if(pnode)
        {
            Node<T>* pleft = pnode->pleft, *pright = pnode->pright;
            delete pnode;
            //std::cout << "deleted\n";
            pnode = 0;
            deleteFromNode(pleft);
            deleteFromNode(pright);
        }
    }
 
};
 
int main()
{
    Tree<std::string> dict;
    dict.insert("aa");
    dict.insert("bb");
    dict.insert("cc");
    dict.insert("dd");
    dict.insert("ee");
    dict.insert("ff");
    std::cout << dict;
    system("pause");
    return 0;
}
 
Текущее время: 01:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru