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

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

Восстановить пароль Регистрация
 
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,693
14.06.2012, 21:33     Шаблонный класс бинарного дерева #1
всем привет, возник такой вопрос
вот есть шаблонный класс бинарного дерева поиска, задается тип ключа и тип данных.
есть метод, который по идее ищет узел с заданным ключом, и возвращает данные.
но вот в чем проблема, если узел с такими данными не найдет, то что возвращать, если тип данных в дереве задается пользователем?
вот -
C++
1
typeData find(typeKey key) const; // найти нужную информацию в дереве.
что делать если узел не найден?

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

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

Класс для бинарного дерева C++
Написать шаблон бинарного дерева с функцией распечатки дерева C++
Шаблонный класс C++

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

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

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