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

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

Войти
Регистрация
Восстановить пароль
 
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
#1

Шаблонный класс бинарного дерева - C++

14.06.2012, 21:33. Просмотров 838. Ответов 10
Метки нет (Все метки)

всем привет, возник такой вопрос
вот есть шаблонный класс бинарного дерева поиска, задается тип ключа и тип данных.
есть метод, который по идее ищет узел с заданным ключом, и возвращает данные.
но вот в чем проблема, если узел с такими данными не найдет, то что возвращать, если тип данных в дереве задается пользователем?
вот -
C++
1
typeData find(typeKey key) const; // найти нужную информацию в дереве.
что делать если узел не найден?

Добавлено через 1 минуту
вернуть ноль какой-нибудь, но как это сделать, если мы тип не знаем?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2012, 21:33     Шаблонный класс бинарного дерева
Посмотрите здесь:

Класс для бинарного дерева - C++
Здравствуйте! Помогите, пожалуйста, я не вижу ошибок и не понимаю, почему программа не видит меню, не работает так, как нужно( Общее...

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

Реализация бинарного дерева, используя класс - C++
Доброго времени суток. Ниже пример бинарного дерева, с использованием структуры и двух функций: заполнением и прямым обходом: #include...

Дополнить класс, включив метод подсчета числа узлов заданного бинарного дерева - C++
Изучить приведенный пример реализации класса «Дерево двоичного поиска», для которого реализованы следующие схемы обхода бинарного дерева: ...

Указатель на шаблонный класс - C++
Есть ли возможность инициализировать указатель на класс с шаблоном, но не указав при этом тип, ну т.е. написать не так Value_Class...

Примитивный шаблонный класс С++ - C++
Создайте пожалуйста любой шаблонный класс на начальном (или "примитивном") уровне языка. Для понимания сделайте с розьяснением...

Шаблонный класс: матрица - C++
Хочу запилить класс matrix - двумерный массив с помощью vector пишу: #include <iostream> #include <vector> using namespace...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hrundel
26 / 26 / 2
Регистрация: 27.05.2012
Сообщений: 114
14.06.2012, 21:43     Шаблонный класс бинарного дерева #2
Вернуть нулевой объект. Просто ноль вернуть в этом случае нельзя.
Переменная принимающая объект должна по какому-то из признаков понять, что вернут нулевой объект. Например, если все указатели объекта указывают на него самого (то есть на собственный индекс)

Передаваемый в бинарное дерево тип должен быть элементом объекта.
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
14.06.2012, 21:54  [ТС]     Шаблонный класс бинарного дерева #3
Hrundel, спасибо за ответ, но не до конца понял
ведь переменная, принимающая результат метода find будет типа typeData.
Hrundel
26 / 26 / 2
Регистрация: 27.05.2012
Сообщений: 114
14.06.2012, 22:03     Шаблонный класс бинарного дерева #4
Если пользовать передает стандартные типы, например int или float или что-то другое, то и проблемы нет - можно вернуть ноль или любое другое число не входящее в предел определения. Если передает класс или объект определенный в программе, но на выбор, то все эти классы или объекты нужно расширить на один указатель того же типа, который будет указывать либо на собственный объект (нулевой объект), либо на другой (например, родительский, дочерний или просто соседний) объект.
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
14.06.2012, 22:19  [ТС]     Шаблонный класс бинарного дерева #5
Hrundel, я вроде понял это, спасибо
а подобного никак нельзя избежать? сделать что-то проще может, наверняка же раньше сталкивались с подобным
я думал над этим, но пока безрезультатно )
Hrundel
26 / 26 / 2
Регистрация: 27.05.2012
Сообщений: 114
14.06.2012, 22:24     Шаблонный класс бинарного дерева #6
Цитата Сообщение от neske Посмотреть сообщение
а подобного никак нельзя избежать? сделать что-то проще
Навряд ли. Это, сам по себе, очень тривиальный способ.
А можно увидеть, какие типы данных будут передаваться? Особенно, если это классы. Тогда можно подумать как это можно упростить.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.06.2012, 22:24     Шаблонный класс бинарного дерева #7
neske, пускай функция возвращает указатель. Тогда можно вернуть нулевой указатель.
Hrundel
26 / 26 / 2
Регистрация: 27.05.2012
Сообщений: 114
14.06.2012, 22:26     Шаблонный класс бинарного дерева #8
Цитата Сообщение от go Посмотреть сообщение
пускай функция возвращает указатель. Тогда можно вернуть нулевой указатель
Или так.
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
14.06.2012, 22:28  [ТС]     Шаблонный класс бинарного дерева #9
мм, и действительно, спасибо )
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,909
14.06.2012, 23:43     Шаблонный класс бинарного дерева #10
neske, правильнее было бы реализовать и возвращать итератор, а не указатель.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2012, 00:02     Шаблонный класс бинарного дерева
Еще ссылки по теме:

Дружественный шаблонный класс - C++
Доброго времени суток. Есть пример из книги (создание списка). Вот код: #ifndef LISTND_H #define LISTND_H template <class...

Шаблонный класс List - C++
Имеется 2 шаблонных класса List и Node. Один объявлен другом другого. По идее должно работать, но у компилятора другое мнение на этот счет:...

Шаблонный класс array (C++ 11) - C++
#include <iostream> #include <cstdlib> #include <cstring> #include <array> using namespace std; int main(){ array <long...

Шаблонный класс Множества - C++
#include "stdafx.h" #include <iostream> #include <vector> using namespace std; //============================= ...

Шаблонный класс vector - C++
Всем привет. Помогите создать шаблонный класс vector и массив который хранит значения template<typename T, size_t size> class array{ ...


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

Или воспользуйтесь поиском по форуму:
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
15.06.2012, 00:02  [ТС]     Шаблонный класс бинарного дерева #11
rangerx, ну да, наверное
вот как-то так http://shatalov.su/ru/articles/algorithms/tree.php , да?
Yandex
Объявления
15.06.2012, 00:02     Шаблонный класс бинарного дерева
Ответ Создать тему
Опции темы

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