Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
3 / 3 / 0
Регистрация: 13.12.2016
Сообщений: 91
1

Создать шаблонный класс «бинарное дерево»

11.11.2017, 13:21. Показов 3225. Ответов 4
Метки нет (Все метки)

Создать шаблон класса «бинарное дерево». Использовать его для сортировки целых чисел и строк, задаваемых с клавиатуры
Можно простой код пожалуйста
0
Заказывайте контрольные, курсовые и дипломы здесь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2017, 13:21
Ответы с готовыми решениями:

Создать шаблонный класс «бинарное дерево»
Создать шаблон класса «бинарное дерево». Использовать его для сортировки целых чисел и строк,...

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при...

Класс бинарное дерево
Здравствуйте. Требуется написать англо-русский словарь на основе бинарного дерева. Не полностью...

Описать класс, реализующий бинарное дерево
помогите ..ребят знаю что обсуждалось уже кучу раз..но у мне выдаёт ошибки..разобраться не...

4
6968 / 6013 / 2731
Регистрация: 14.04.2014
Сообщений: 25,736
11.11.2017, 13:33 2
Ты искал?
Двоичное дерево поиска: дописать в класс set-функцию
0
3 / 3 / 0
Регистрация: 13.12.2016
Сообщений: 91
11.11.2017, 23:33  [ТС] 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
#pragma once
 
template<class T>
class set
{
public:
    //открытый интерфейс класса set
    set() //деструктор создает пустое множество
    {
        root = 0;
    }
    void erase(const T& val)
    {
        if (find(val) == false) return;
        node_ptr& ref = insert_find(root, val);
        if (ref->left == 0)
        {
            node * temp = ref->right;
            delete ref;
            ref = temp;
        }
        else if (ref->right == 0)
        {
            node * temp = ref->left;
            delete ref;
            ref = temp;
        }
        else
        {
            node * t;
            t = ref->right;
            while (t->left != 0) t = t->left;
            t->left = ref->left;
            node * temp = ref->right;
            delete ref;
            ref = temp;
        }
    }
    void insert(const T& val)
    {
        if (find(val) == true) return;
        if (root == 0)
        {
            root = new node(val, 0, 0);
            return;
        }
 
        insert_find(root, val) = new node(val, 0, 0);
    }
    bool find(const T& val)
    {
        node * temp = find(root, val);
        if (temp != 0) return true; else return false;
    }
    ~set()//удаляет все узлы двоичного дерева
    {
        destructor(root);
    }
private:
    struct node
    {
        T data;
        node *left;
        node *right;
        node(const T& val, node* l, node * r) :data(val), left(l), right(r) {}
    };
    typedef node* node_ptr;
    node* find(node * root_subtree, const T& val) //рекурсивный поиск 
                                                  //узла, содержащего значение val, в поддереве, на корень которого
                                                  // указывает root_subtree
    {
        if (root_subtree == 0) return 0;
        node * cur = root_subtree;
 
        if (!(val < cur->data) && !(cur->data < val)) return cur;
        if (val < cur->data) return find(cur->left, val);
        else return find(cur->right, val);
    }
    node_ptr& insert_find(node_ptr& root_subtree, const T& val) //
    {
        if (val < root_subtree->data)
        {
            if (root_subtree->left == 0) return root_subtree->left;
            else return insert_find(root_subtree->left, val);
        }
        else if (root_subtree->data < val)
        {
            if (root_subtree->right == 0) return root_subtree->right;
            else return insert_find(root_subtree->right, val);
        }
        return root_subtree;
    }
    void destructor(node * root_subtree) //рекурсивная процедура удаляющая все узлы
                                         //из поддерева, на корень которого указывает root_subtree
    {
        if (root_subtree == 0) return;
        destructor(root_subtree->left);
        destructor(root_subtree->right);
        delete root_subtree;
    }
    node * root; //указатель на корень дерева поиска
};
И еще нужна основая программа,я вообще не разбираюсь в этом,в основной нужно просто добавить пару обьектов этого класса
0
Jesus loves me
Эксперт С++
5164 / 3137 / 353
Регистрация: 12.12.2009
Сообщений: 7,925
Записей в блоге: 2
12.11.2017, 09:01 4
Цитата Сообщение от Nikita123123 Посмотреть сообщение
я вообще не разбираюсь в этом
тогда зачем тебе это надо?
0
3 / 3 / 0
Регистрация: 13.12.2016
Сообщений: 91
12.11.2017, 10:05  [ТС] 5
Так вышло,что нужно решить эту задачу для зачёта )
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2017, 10:05

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Описать класс, реализующий бинарное дерево
Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых элементов,...

Описать класс, реализующий бинарное дерево
Здравствуйте! Возникли проблемы с реализацией одной программы ....Описать класс, реализующий...

Нужно реализовать класс Бинарное дерево.
Нужно реализовать класс Бинарное дерево. Вот класс template &lt;class T&gt; class Tree { private:...

Описать класс, что реализует бинарное дерево
Доброго времени суток. Может кто-то поделиться готовым кодом или примером для такого задания:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.