Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 14.05.2020
Сообщений: 50

Шаблонный класс и компаратор

05.04.2021, 19:21. Показов 2136. Ответов 5

Студворк — интернет-сервис помощи студентам
Есть задание:
Опишите абстрактный шаблонный класс binary_tree<T>, представляющий собой абстракцию дерева поиска (тип элементов
указывается в единственном параметре шаблона). Класс должен содержать три чистых виртуальных функции: добавления элемента в
дерево, удаления элемента из дерева, поиска элемента в дереве по значению. Конструктор класса должен принимать в качестве
параметра шаблонный компаратор (правило вычисления отношения порядка между данными в узлах дерева).
Я написла такой хедер:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once
 
template <class T>
class Compare 
{
    public:
        virtual Compare();
        virtual ~Compare();
        
        bool    comparer(const Object <T> &obj1, const Object <T> &obj2);
};
 
template <typename T>
class   binary_tree
{
    protected:
        T               data;
        binary_tree<T>  *left;
        binary_tree<T>  *right;
 
    public:
        binary_tree(Compare <T> cmp)
        {};
        
        ~binary_tree()
        {};
 
        void    add_node(const T &elem) = 0;
        void    delete_node(const T &elem) = 0;
        void    find_node(const T &elem) = 0;
};
Правильно ли я выполнил задание? Я не совсем понимаю, как использовать этот компоратор в классе binary_tree.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.04.2021, 19:21
Ответы с готовыми решениями:

Класс Matrix: реализовать шаблонный класс для двумерных массивов
Доброго времени суток. У меня вопрос: я создал класс Array со внутренним динамическим массивом и объекты этого типа смог создать и я ими...

Шаблонный класс и класс одномерный массив
Задание: протестировать класс шаблон, с обычными типами данных я понял как делать, а как передать в шаблон свой класс я не понял. ...

Переделать класс в шаблонный класс
Как данный процесс проделать? Я попробовал так по синтаксису из учебника: #include &lt;iostream&gt; #include &lt;fstream&gt; ...

5
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13177 / 6813 / 1821
Регистрация: 18.10.2014
Сообщений: 17,238
05.04.2021, 19:36
Цитата Сообщение от newmersedez Посмотреть сообщение
Класс должен содержать три чистых виртуальных функции
А виртуальные функции-то тут зачем, если требуется шаблон??? И раз все три функции - чистые виртуальные, то фактически делать ничего не нужно?

Цитата Сообщение от newmersedez Посмотреть сообщение
Правильно ли я выполнил задание?
Кто знает...

Что это такое?

C++
1
2
3
        T               data;
        binary_tree<T>  *left;
        binary_tree<T>  *right;
Что это делает в классе дерева? Такие поля уместны в классе узла дерева, а не в классе самого дерева.
0
0 / 0 / 0
Регистрация: 14.05.2020
Сообщений: 50
05.04.2021, 19:44  [ТС]
Функции виртуальные, потому что класс абстрактный, хоть и шаблонный. Это задание нужно(этот шаблонный абстрактный класс), чтобы потом на его основе реализовать класс авл и красно-черного дерева. Насчет полей класса: это я поправлю...
0
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
05.04.2021, 21:18
newmersedez, строки 28-30, не хватает слова virtual.
0
0 / 0 / 0
Регистрация: 14.05.2020
Сообщений: 50
05.04.2021, 21:48  [ТС]
virtual добавил, забыл про него совсем
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
05.04.2021, 22:39
del.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.04.2021, 22:39
Помогаю со студенческими работами здесь

Шаблонный класс
Как его реализовать??? Смысл я понимаю, но вот как записать...не знаю:cry:

Шаблонный класс
Доброго времени суток. Опять пишу здесь(( помогите ребятки.Сидел много над проблемой и честное слово не нашол проболемы. Незнаю почему...

Шаблонный класс
День добрый. Пишу матричный калькулятор на шаблонном классе. Хочу добиться того, чтобы можно было оперировать с матрицами всех численных...

Шаблонный класс
Если мне нужно сделать только один метод класса шаблонным правильно будет сделать тогда весь класс шаблонным и описать все в хедере , или...

Шаблонный класс
#include &lt;iostream&gt; using namespace std; template &lt;class T&gt; class Vector{ private: int size, capacity; T* data; public: ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru