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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
umar
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 3
#1

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

19.08.2014, 19:36. Просмотров 418. Ответов 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++
C++ Алгоритм реализации двоичного дерева
Удаление корня двоичного дерева C++
Создать класс [B]TreeChar[/B], для работы с элементами двоичного дерева C++
C++ Англо-русский словарь построен в виде двоичного дерева в программе с++
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     Пример двоичного дерева
Ответ Создать тему
Опции темы

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