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

бинарные деревья - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент http://www.cyberforum.ru/cpp-beginners/thread370474.html
Задача с двумерным массивом на C (не C++). Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент. Характеристикой строки...
C++ Динамическое выделение памяти в dll Читая Рихтера наткнулся вот на такое замечание:NOTE: Важно понимать, что единое адресное пространство состоит из одного исполняемого модуля и нескольких DLL-модулей. Одни из них могут быть... http://www.cyberforum.ru/cpp-beginners/thread370440.html
C++ Транспонирование матрицы
int _tmain(int argc, _TCHAR* argv) { const int n=5; int a; srand(GetTickCount()); for (int i=0; i < n; i++) for (int j=0; j < n; j++) a=rand()%10; for (int i=0;i<n;i++) {
C++ Перегрузка оператора ==, в классе Матрица
#ifndef MATRIX_H #define MATRIX_H template <class T> class Matrix { public: Matrix(int Rows, int Cols); ~Matrix(); int RowsCount()const;
C++ Проблема с вводом текста. http://www.cyberforum.ru/cpp-beginners/thread370430.html
Привет всем!!! извините конечно, за столь простой вопрос.. забыл и никак вспомнить не могу, как в Объект инспекторе выставить значения текста в кнопке не по центру как по умолчания...
C++ Какие есть библиотеки для работы с MYSQL Всем привет. Я ищу простую (С++) библиотеку для работы с MYSQL. Программа консольная, среда Visual Studio 9-10 Сурс из официального сайта мускула, буст и ACE не вариант. Заранее благодарю.:drink: подробнее

Показать сообщение отдельно
CheToZudit
9 / 9 / 2
Регистрация: 22.10.2011
Сообщений: 19
22.10.2011, 05:42
У Вирта довольно подробно описано построение сбалансированного дерева. Там же по-моему можно найти форматированный вывод дерева. Найти такую книжку в интернетах не проблема

Добавлено через 54 минуты
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
# include <iostream>
 
using namespace std;
 
class Tree          // tree
{
public:
    struct Node     // struct of Tree's elem
    {
        int key;
        Node *left;     
        Node *right;
        void PrintEl(int lvl);
    };
 
private:
    Node *root;     // ук-ль на корень дерева
    void Insert(int k, Node *&root);    // поиск и вставка эл-та
public:
    Tree() {root = 0;}
    Node* GetRoot() {return *&root ;}
    void BuildTree();   // build tree (:
    void TraceLeft(Node *root);
    void PrintTree();
};
 
int main()
{
    Tree tree;
    tree.BuildTree();
    cout << "It's your tree (:" << endl;
    //tree.TraceLeft(tree.GetRoot());
    tree.PrintTree();
    return 0;
}
 
void Tree::BuildTree()
{
    int k;      // it's temporary for key
    cout << "Enter key" << endl;
    while (cin >> k)
        Insert(k, root);
}
 
void Tree::Insert(int k, Node *&root)
{
    if (root == 0)
    {
        root = new Node;
        root->key = k;
        root->left = 0; root->right = 0;
    }
    else if (k < root->key)
            Insert(k, root->left);
        else if (k > root->key)
            Insert(k, root->right);
}
void Tree::TraceLeft(Node *root)
{
    if (root != 0)
    {
        TraceLeft(root->left);
        cout << root->key << " ";
        TraceLeft(root->right);
    }
}
void Tree::PrintTree()
{
    cout << endl;
    if (root)
        root->PrintEl(0);
}
void Tree::Node::PrintEl(int lvl)
{
    for (int i  = 0; i < lvl; i++)
        cout << " ";
    cout << key << endl;
    if (left)
        left->PrintEl(lvl + 1);
    if (right)
        right->PrintEl(lvl + 1);
}
Вот я кое-что наваял. Только весь код лучше не оценивать, мне за него немножко стыдно, а нужные функции форматированного вывода вроде нормально работают
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru