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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение из файла и сортировка слов http://www.cyberforum.ru/cpp-beginners/thread163948.html
здравствуйте. у меня вопрос по задаче 1.89:сортировка слов производить только по буквам или по буквам и по длине?
C++ Скрытый параметр - казатель this. Всё написал так. как было написано в листинге 8.8 книги Jessie Liberty. После нажатия на кноку "компилировать" компилятор выдаёт ошибку. #include <iostream> using namespace std; class Rectangle { public: Rectangle(); http://www.cyberforum.ru/cpp-beginners/thread163946.html
Оператор выбора switch.C++. C++
Не могу сообразить,как построить switch... По последним цифрам двух натуральных чисел определить последнюю цифру куба разности этих чисел. #include <iostream> #include <math.h> #include <conio.h> using namespace std; int main() { int x, y;
C++ Как правильно подключить шаблонный класс (VS2008)?
Добрый день! Помогите в подключении шаблонного класса в Visual Studio 2008 Professional. Создал консольный проект,в заголовочном файле.h разместил сам класс и реализацию его функций,соответственно файл.cpp не создавал и в main'е разместил основную программу. Проект не собирается,указывая на ошибки(в BuildLog.htm'ме): Compiling... stdafx.cpp c:\users\dell\documents\visual studio...
C++ Указатели/масивы http://www.cyberforum.ru/cpp-beginners/thread163913.html
Доброго времени суток Условие задачи: Создайте класс, который позволит вам использовать 10 отдельных массивов по 10 элементов, как один одномерный массив, допуская применение операций массива. То есть мы можем получить доступ к элементам массива, записав в функции main() выражение типа a, а методы класса могут получить доступ к полям класса, используя двухшаговый подход. Перегрузим операцию ,...
C++ Список вопросов по Borland C Помогите решить,скоро перездача,а я только начал готовиться......Все вопросы-в фото... подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
06.09.2010, 23:40     Алгоритм реализации двоичного дерева
Нужно написать реализацию двоичного дерева с использованием шаблонов в упрощенном виде следуя конвенциям 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 деревьев...).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru