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

Алгоритм реализации двоичного дерева - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение из файла и сортировка слов http://www.cyberforum.ru/cpp-beginners/thread163948.html
здравствуйте. у меня вопрос по задаче 1.89:сортировка слов производить только по буквам или по буквам и по длине?
C++ Создать класс который может быть использован для хранения информации и студентах создать класс который может быть использован для хранения информации и студентах http://www.cyberforum.ru/cpp-beginners/thread163947.html
C++ Скрытый параметр - казатель this.
Всё написал так. как было написано в листинге 8.8 книги Jessie Liberty. После нажатия на кноку "компилировать" компилятор выдаёт ошибку. #include <iostream> using namespace std; class...
Оператор выбора switch.C++. C++
Не могу сообразить,как построить switch... По последним цифрам двух натуральных чисел определить последнюю цифру куба разности этих чисел. #include <iostream> #include <math.h> #include...
C++ Как правильно подключить шаблонный класс (VS2008)? http://www.cyberforum.ru/cpp-beginners/thread163916.html
Добрый день! Помогите в подключении шаблонного класса в Visual Studio 2008 Professional. Создал консольный проект,в заголовочном файле.h разместил сам класс и реализацию его функций,соответственно...
C++ Указатели/масивы Доброго времени суток Условие задачи: Создайте класс, который позволит вам использовать 10 отдельных массивов по 10 элементов, как один одномерный массив, допуская применение операций массива. То... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3

Алгоритм реализации двоичного дерева - C++

06.09.2010, 23:40. Просмотров 4101. Ответов 4
Метки (Все метки)

Нужно написать реализацию двоичного дерева с использованием шаблонов в упрощенном виде следуя конвенциям STL контейнеров. Основные операции: вставка, удаление, поиск и итератор.
>> Абстрактного шаблонного двоичного дерева?
Да
>> Вставка, удаление, поиск, итератор соответственно писать самому, не используя STL
Да

То есть. Суть в том, чтобы написать это все без использования STL, но чтобы оно было похоже на STL. Фактически написать новый контейнер и определить для него операции.
Естественно, я не прошу кода. Прошу только натолкнуть на мысль, как возможно сие реализовать. Заранее спасибо.

Добавлено через 25 минут
По сути я представляю это как-то так... Верно или нет?

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
template<class T>
class BinTree
{
public:
   BinTree():parent(0), left(0), right(0), data(0){}
   ~BinTree()
   {
      if(left) delete left;
      if(right) delete right;
      delete parent;
   }
   BinTree* insert(T, BinTree*);
   T search(T data);
   
private:
   BinTree*parent;
   BinTree*left;
   BinTree*right;
   T data;
};
 
BinTree* BinTree<T>::insert(T elem, BinTree* Tree)
{
    if(!Tree)
    {
        Tree=new BinTree[sizeof(BinTree)];
        Tree->data=elem;
        Tree->left=0;
        Tree->right=0;
    }
    else if(elem<Tree->data) Tree->left=insert(elem, Tree->left);
    else Tree->right=insert(elem, Tree->right);
    return Tree;
}
 
//Класс для итераторов
Добавлено через 3 часа 17 минут
Никто ничего подсказать не может? Я собственно вроде бы сделал insert. Выше в коде он описан. Мог ошибиться, писал по памяти. Чисто в теории верно или нет? И все же вопрос как подойти к этому (особенно с итератором, а еще более особенно что дерево как бы должен быть контейнер, а не n деревьев...).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru