Номер варианта | Задание |
1 | Опишите параметризованный класс односвязный список элементов. Описать функцию вставки нового элемента после заданного. |
2 | Опишите параметризованный класс двусвязный список элементов. Описать функцию удаления элемента после заданного. |
3 | Опишите параметризованный класс очередь элементов. Описать функцию вставки нового элемента в конец очереди. |
4 | Опишите параметризованный класс стек элементов. Описать функцию вставки нового элемента в начало стека. |
5 | Опишите параметризованный класс стек элементов ограниченной ёмкости (параметр – тип и число-емкость). Описать функцию удаления элемента из стека. |
6 | Опишите параметризованный класс очередь с приоритетами. Описать функцию извлечения элемента с наивысшим приоритетом. |
7 | Опишите параметризованную функцию сортировки вставкой в массиве. |
8 | Опишите параметризованную функцию сортировки выборкой в массиве. |
9 | Опишите параметризованную функцию сортировки пузырьком в массиве. |
10 | Опишите параметризованную функцию нахождения элемента в неупорядоченном массиве. |
11 | Опишите параметризованную функцию нахождения элемента в упорядоченном массиве. |
12 | Опишите параметризованную функцию замены одного элемента массива на другой. |
13 | Опишите параметризованную функцию инверсии массива элементов. |
14 | Опишите параметризованную функцию вычисления среднего арифметического значения массива элементов. |
15 | Опишите параметризованный класс двоичное дерево элементов. Опишите функцию поиска элемента в дереве. |
Вариант второго задания
|
|
Абстрактный тип данных (АТД) − тип данных, определяемый только через операции, которые могут выполняться над соответствующими объектами безотносительно к способу представления этих объектов.
Порядок выполнения задания
1. Класс АТД реализовать как динамический массив. Для этого определение класса должно иметь следующие поля:
− указатель на начало массива;
− максимальный размер массива;
− текущий размер массива.
2. Для вода и вывода определить в классе функции input и print.
3. Чтобы не возникало проблем, аккуратно работайте с константными объектами. Например:
•конструктор копирования следует определить так:
MyTmp (const MyTmp& ob);
•операцию присваивания перегрузить так:
MyTmp& operator = (constMyTmp& ob);
4. Для шаблонов множеств, списков, стеков и очередей в качестве стандартных типов использовать символьные, целые и вещественные типы. Для пользовательского типа взять класс представленный ниже из приложения.
5. Для шаблонов массивов в качестве стандартных типов использовать целые и вещественные типы. Для пользовательского типа взять класс “комплексное число” complex.
|
|
class complex {
int re; // действительная часть
int im; // мнимая часть
public;
// необходимые функции и перегруженные операции
};
6. Реализацию шаблона следует разместить вместе с определением в заголовочном файле.
7. Тестирование должно быть выполнено для всех типов данных и для всех операций.