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

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

Восстановить пароль Регистрация
 
umar
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 3
19.08.2014, 19:36     Пример двоичного дерева #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) - что это вообще значит?
Заранее простите если совсем глупые вопросы...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2014, 19:36     Пример двоичного дерева
Посмотрите здесь:

C++ Алгоритм реализации двоичного дерева
удаление корня двоичного дерева C++
Создать класс [B]TreeChar[/B], для работы с элементами двоичного дерева C++
C++ Англо-русский словарь построен в виде двоичного дерева в программе с++
C++ Частотный словарь из слов текстового файла в виде дерева двоичного поиска
C++ Помогите сделать обход двоичного дерева
C++ Как можно совершить обход двоичного дерева нерекурсивно
C++ Вывести все вершины двоичного дерева

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tehnar5
31 / 31 / 12
Регистрация: 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 классов, но зато будет понятнее, короче и проще
Yandex
Объявления
19.08.2014, 19:56     Пример двоичного дерева
Ответ Создать тему
Опции темы

Текущее время: 12:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru