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

Преобразование идельно сбалансированного дерева в дерево поиска - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Векторный калькулятор на классах http://www.cyberforum.ru/cpp-beginners/thread1192602.html
Привет всем. Преподаватель дал задание, написать векторный калькулятор на классах. На массивах в консоли я сделал для 4 операций, но как теперь переписать его на классы, используя перегрузку функций итд, не могу понять. Прошу помощи от сообщества. Буду признателен, если будет готовое решение хотя бы для одной операции или хотя бы подсказки, что загонять в классы
C++ будьте добры правильная программа надо( 4. Определить номера строк матрицы R, хотя бы один элемент которых равен с, и элементы этих строк умножить на d. http://www.cyberforum.ru/cpp-beginners/thread1192583.html
C++ C++ try catch throw в разных функциях
try и catch находятся в одной функции а throw вызывается из другой. ну MVS выкидывает исключение вместо передачи управления. что делать? проект консольный, не CLI Добавлено через 1 минуту даже если они находятся в одной функции, передача управления не происходит
Треугольник в С++ C++
Добрый день! Я уже обращался к Вам (http://www.cyberforum.ru/cpp-beginners/thread1158188.html) по этому вопросу, однако так и не разобрался. Еще раз перепишу задачку "Разработать класс на языке С++ реализующий методы для работы с треугольником: построение треугольника, вычисление периметра, площади, длин сторон". Если вкратце, то все, до чего я дошел, это то, что: 1. Раз надо найти длины...
C++ Числа Спрага-Грюнди http://www.cyberforum.ru/cpp-beginners/thread1192501.html
Разработать программную модель следующей игры двух игроков (пользователь-компьютер), реализовав выигрышную стратегию для пользователя: На стол выкладываются 50 спичек. Каждый игрок по очереди вынимает спички из кучи, по меньшей мере, 1 и не более 6. Кто берет последнюю спичку, тот выигрывает. С выйгрышной ситуацией, при которой мы оставляем противнику число спичек, кратное 7, мы разобрались....
C++ Конструктор копирования есть класс, в нем есть указать на участок памяти, как написать для этого класс конструктор копирования? как работает конструктор с указателями? подробнее

Показать сообщение отдельно
grikukan
61 / 61 / 21
Регистрация: 23.09.2012
Сообщений: 212
30.05.2014, 15:42     Преобразование идельно сбалансированного дерева в дерево поиска
Ну обходим дерево,как когда печатаем, и кидаем в вектор все числа.
Затем делаем уже настоящее бинарное дерево
C++
1
2
3
4
5
6
7
8
9
edge* new_edge(long value)
{
    edge *a=new edge;
    a->val=value;
    a->l=NULL;
    a->r=NULL;
    a->p=NULL;
    return a;
}
шаблон чистой вершины
C++
1
2
3
4
5
6
7
8
9
edge* new_edge(long value)
{
    edge *a=new edge;
    a->val=value;
    a->l=NULL;
    a->r=NULL;
    a->p=NULL;
    return a;
}
Соответственно где-то в int main() создаем вершину и объявляем ее корнем.

Пишем процедуру добавления в дерево
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
void ins(edge *root, edge *add)
{
    if(root->l!=NULL && root->val>add->val)
    {
        return ins(root->l,add);
    }
    else
    if(root->r!=NULL && root->val<add->val)
    {
         return ins(root->r,add);
    }
    else if(root->val>add->val)
    {
        root->l=add;
        add->p=root;
    }
    else
    {
        root->r=add;
        add->p=root;
    }
 
 
}
А потом просто в int main() по очереди вызываем добавление каждого элемента вектора в дерево
 
Текущее время: 02:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru