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

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

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

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

19.08.2014, 19:36. Просмотров 506. Ответов 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++
Нужно написать реализацию двоичного дерева с использованием шаблонов в упрощенном виде следуя конвенциям STL контейнеров. Основные...

Проверка корректности двоичного дерева - C++
Здравствуйте! Задача такая, Свойство двоичного дерева поиска можно сформулировать следующим образом: для каждой вершины дерева V...

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

Помогите сделать обход двоичного дерева - C++
Есть некий проект (большой, несколько файлов), где происходит процессы со списком (добавление, удаление и т. д.). Структура: /** *...

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

Как можно совершить обход двоичного дерева нерекурсивно - C++
Доброго времени суток. Хочу поинтересоваться: как можно совершить обход двоичного дерева нерекурсивно(!!!), желательно с примерами или...

Англо-русский словарь построен в виде двоичного дерева в программе с++ - C++
Англо-русский словарь построен в виде двоичного дерева. Каждая компонента содержит английское слово, соответствующее ему русское слово и...

Создать класс [B]TreeChar[/B], для работы с элементами двоичного дерева - C++
Создать класс TreeChar, для работы с элементами двоичного дерева ASCII-символов. В качестве членов-данных рекомендуется брать элементы...

Частотный словарь из слов текстового файла в виде дерева двоичного поиска - C++
Задача: Построить частотный словарь из слов текстового файла в виде дерева двоичного поиска. Вывести его на экран в виде дерева....

Написать рекурсивную процедуру, которая печатает ключи всех вершин двоичного дерева - C++
Необходимо написать рекурсивную процедуру, которая печатает ключи всех вершин двоичного дерева. Двоичное дерево задастся в файле в...

Xor двоичного числа - C++
Добрый день! Прошу написать простую программу на c++ xor двоичного числа.

Запись двоичного файла - 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     Пример двоичного дерева
Ответ Создать тему
Опции темы

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