0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 3
1

Пример двоичного дерева

19.08.2014, 19:36. Показов 1536. Ответов 1
Метки нет (Все метки)

Здравствуйте! Возникла мысль попробовать реализовать двоичное дерево в c++ для этого решил сначала рассмотреть какие-нибудь примеры в сети... В общем возникли вопросы по синтаксису.
C++
1
2
3
4
5
6
7
8
9
10
11
template<class T> class TreeNode {
 protected:
  TreeNode  *_lchild;
  TreeNode  *_rchild;
  Т val;
 public:
  TreeNode(T);
  virtual ~TreeNode(void);
  friend class SearchTree<T>;        // возможные пополнения
  friend class BraidedSearchTree<T>; // структуры
};
Почему здесь TreeNode(T) в скобках указывают T Так же и в дружественных классах <T>?
C++
1
2
3
4
template<class T> TreeNode<T>::TreeNode(T v) :
  val(v), _lchild(NULL), _rchild (NULL)
{
}
Почему val(v) - что это вообще значит?
Заранее простите если совсем глупые вопросы...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2014, 19:36
Ответы с готовыми решениями:

Обход двоичного дерева по уровням
Доброго времени! Нужно реализовать нерекурсивный обход двоичного дерева поиска по уровням, я...

Удаление корня двоичного дерева
двоичное дерево состоит только из ptr корень двоичного дерева как удалить этот корень?

Проверка корректности двоичного дерева
Здравствуйте! Задача такая, Свойство двоичного дерева поиска можно сформулировать следующим...

Алгоритм реализации двоичного дерева
Нужно написать реализацию двоичного дерева с использованием шаблонов в упрощенном виде следуя...

1
31 / 31 / 19
Регистрация: 03.05.2011
Сообщений: 84
19.08.2014, 19:56 2
В с++ есть такая вещь, как шаблоны. Грубо говоря, они позволяют, в данном случае, сделать дерево, в котором ключами могут быть любые типы, у которых есть оператор сравнения(так как он будет применяться для поиска элемента и тд). Вполне вероятно, что Вам такие нагромождения не нужны и можно попытаться найти обычный код для обычного дерева, хранящего числа.
TreeNode(T) аналогично, по сути, TreeNode(int), TreeNode(string), то есть, вместо Т подставляется конкретный тип данных. Это, соответственно, декларация функции(в данном случае это конструктор), а потому необязательно писать TreeNode(int x), TreeNode(T x) и тд.

Добавлено через 3 минуты
Соответственно, если у Вас есть работающий код дерева, то вот так можно создать вершину, которая хранит int:
TreeNode<int> vertex;
В скобки < > можете подставить любой тип, который Вам нужен.

А вообще, серьезно, если Вам реализация непонятна, найдите попроще, без таких наворотов. Пусть будет не так универсально, пусть не будет создано 100500 классов, но зато будет понятнее, короче и проще
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2014, 19:56
Помогаю со студенческими работами здесь

Программа построения двоичного дерева
Разработать программу построения двоичного дерева, ключом в котором служит название лекарственного...

Вывести все вершины двоичного дерева
Двоичное дерево задано в виде: m,g],s,y]] Как с помощью стека вывести это на экран? Набросайте,...

Помогите сделать обход двоичного дерева
Есть некий проект (большой, несколько файлов), где происходит процессы со списком (добавление,...

Разработать программу построения двоичного дерева
Условие: Разработать программу построения двоичного дерева, ключом в котором служит название...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru