Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 12.03.2020
Сообщений: 15
1

Бинарное дерево. Массив

28.05.2020, 15:20. Показов 514. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, пытался написать код для сортировки массива бинарным деревом
Вопрос, как должна выглядеть функция sort для сортировки заданного массива?
C++
1
2
3
4
5
6
7
8
9
10
11
using namespace std;
class tree
{
public:
    void print(tree*t, int u);
    void sort(double *mas,tree **t);
private:
    double data;
    tree* right;
    tree* left;
};
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
void tree::print(tree* t, int u)
{
    if (t == NULL) return;                  //Если дерево пустое, то отображать нечего, выходим
    else //Иначе
    {
        print(t->left, ++u);                   //С помощью рекурсивного посещаем левое поддерево
        for (int i = 0; i < u; ++i) cout << "                          ";
        cout << t->data << endl;            //И показываем элемент
        u--;
    }
    print(t->right, ++u);
}
 
void tree::sort(double* mas, tree** t)
{
    if ((*t) == NULL)                   //Если дерева не существует
    {
        (*t) = new tree;                //Выделяем память
        (*t)->data = mas[];                 //Кладем в выделенное место аргумент a
        (*t)->left = (*t)->right = NULL;       //Очищаем память для следующего роста
        return;                         //Заложили семечко, выходим
    }
    //Дерево есть
    if (mas[] > (*t)->data) sort(mas[], &(*t)->right); //Если аргумент а больше чем текущий элемент, кладем его вправо
    else sort(mas[i], &(*t)->left);//Иначе кладем его влево
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
 
    double* mas = new double[10];
    for (int i = 0; i < 10; i++)
        mas[i] = (double)(rand() % (10000 - (-10000) + 1) + (-10000)) / 100;
    for (int i = 0; i < 10; i++)
        std::cout << std::fixed << std::setprecision(4) <<"   "<< mas[i];
    tree tree;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2020, 15:20
Ответы с готовыми решениями:

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

Бинарное дерево массив сыновей
Привет. Я написал дерево массива сыновей, но не вдупляю как его выводить в виде дерева, могу лишь...

Требуется реализовать структуру данных «ассоциативный массив» используя бинарное дерево
Приведите,пожалуйста,примеры подобных программ

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

1
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
28.05.2020, 15:56 2
Цитата Сообщение от MAKAR555 Посмотреть сообщение
Здравствуйте, пытался написать код для сортировки массива бинарным деревом
Вопрос, как должна выглядеть функция sort для сортировки заданного массива?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
struct tree_node
{
    double data;
    tree_node *right = nullptr;
    tree_node *left = nullptr;
};
 
class tree
{
public:
    void add(double val);
 
    void print(int u);
    void sort(double *mas, size_t sz)
    {
        for (size_t i = 0; i < sz; ++i)
            add(mas[i]);
    }
private:
    tree_node *m_root = nullptr;
};
0
28.05.2020, 15:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2020, 15:56
Помогаю со студенческими работами здесь

Бинарное дерево
Друзья, помогите реализовать задачу в виде бинарного дерева: Оператор мобильной связи...

Бинарное дерево
Объясните пжлст почему не работает программа...при вводе файла пишет -842150451 /*Дан адрес P1...

Бинарное дерево
Написать программу для создания, на основе конструктора,дерева из объектов двух типов. Объекты...

Бинарное дерево
Здравствуйте дорогие форумчане. Помогите, пожалуйста, реализовать бинарное дерево поиска, а так же...

Бинарное дерево
Задание сделать бинарное дерево, но при добавлении появилась проблема, не могу разобраться с...

Бинарное дерево
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; int last; void add(double volue)...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru