DZ ST C++ 05
DZ ST C++ 05
Курс
«Объектно-ориентированное
программирование на C++»
Встреча №15
Тема: динамические структуры данных — односвязный
список
Задание 1.
Реализуйте стек в виде односвязного списка. Требуется
реализовать типичные операции по работе со стеком.
При переполнении стека нужно увеличивать его размер.
Задание 2.
В существующий класс односвязного списка добавить:
операцию клонирования списка (функция должна возвра-
щать адрес головы клонированного списка), перегрузить
оператор + (оператор должен возвращать адрес головы
нового списка, содержащего элементы обоих списков для
которых вызывался оператор), перегрузить оператор *
(оператор должен возвращать адрес головы нового списка,
содержащего только общие элементы обоих списков для
которых вызывался оператор).
Домашнее задание №16
Встреча №16
Тема: динамические структуры данных — двусвязный
список
Задание 1.
Реализовать шаблонный класс "Очередь" на основе двусвяз-
ного списка.
Задание 2.
В существующий класс двусвязного списка добавить:
операцию клонирования списка (функция должна возвра-
щать адрес головы клонированного списка), перегрузить
оператор + (оператор должен возвращать адрес головы
нового списка, содержащего элементы обоих списков для
которых вызывался оператор), перегрузить оператор *
(оператор должен возвращать адрес головы нового списка,
содержащего только общие элементы обоих списков для
которых вызывался оператор).
Задание 3.
Создать шаблонный класс-контейнер Array, который пред-
ставляет собой массив, позволяющий хранить объекты
заданного типа. Класс должен быть реализован с помо-
щью двусвязного списка. Класс должен реализовывать
следующие функции:
a. GetSize — получение размера массива (количество
элементов, под которые выделена память).
b. SetSize(int size, int grow = 1) — установка размера мас-
сива (если параметр size больше предыдущего размера
массива, то выделяется дополнительный блок памяти,
если нет, то "лишние" элементы теряются и память
Домашнее задание №16
Встреча №17
Тема: Бинарное дерево
Задание.
Реализовать базу данных ГАИ по штрафным квитанциям
с помощью бинарного дерева. Ключом будет служить
номер автомашины, значением узла — список право-
нарушений. Если квитанция добавляется в первый раз,
то в дереве появляется новый узел, а в списке данные по
правонарушению; если нет, то данные заносятся в су-
ществующий список. Необходимо также реализовать
следующие операции:
• Полная распечатка базы данных (по номерам машин
и списку правонарушений, числящихся за ними);
• Распечатка данных по заданному номеру;
• Распечатка данных по диапазону номеров.