Коллекция объектов произвольных типов в памяти (начальный балл – 4,0)



Необходимо разработать интерфейс для объединения в структуру данных множества объектов различных классов - абстрактный базовый класс объектов object, для которого предусмотреть виртуальные методы: загрузки объекта из текстовой строки, выгрузки объекта в текстовую строку в динамической памяти, добавления объекта в последовательный двоичный файл, чтения объекта из последовательного двоичного файла, возврата уникального идентификатора класса, возврата указателя на строку с именем класса, сравнения двух объектов, “сложения “(объединения) двух объектов, создание динамической копии объекта. Сделать классы хранимых объектов производными от абстрактного базового класса object (например, класс Float, String и класс из лабораторной работы).

Программа должна реализовывать указанные выше действия. Протестировать структуру данных на простом типе (например, Int или String). Программа тестирования должна содержать меню, обеспечивающее выбор операций.

 

Вид структуры данных

1. Двусвязный список.

2. Двусвязный циклический список.

3. Односвязный список с организацией стека.

4. Двусвязный список с организацией очереди.

5. Дерево, вершина которого содержит два указателя на поддеревья, счетчик количества вершин и указатель на объект (начальный балл 4,5).

 

Дополнение: добавить в коллекцию вложенный класс, реализующий функции итератора (дополнительный балл 0,5).

7. Реализовать абстрактный тип данных (АТД) «Файловая структура данных» в соответствии с вариантом. (начальный балл  5,0)

Операции АТД:

Insert – вставка записи в файл,

Delete – удаление записи из файла,

Search - поиск записи в файле.

 

1. Элементом данных, хранящихся в файле, является запись, имеющая уникальное ключевое значение.

2. Запись в индексном файле представлена индексом, т.е. парой (k, p), где k – ключевое значение, p – файловый указатель на начало записи в файле.

3. Для файла данных поддерживается файловая структура индексов, указанная в варианте задания.

4. Файл индексов имеет страничную структуру. Страницы содержат индексы записей и имеют фиксированный размер.

5. Чтение и запись в файл индексов ведется постранично.

6. Тестирование файловой структуры ведется для различных значений параметров:

N – число записей в файле данных, N = 103, 104, 105, 106,

M – число индексов на странице файла индексов, M = 10,100, 1000.

7. Число обращений к блокам файла индексов в процессе выполнения операций должно соответствовать:

- для хешированного файла - N/(M*K), где K – число сегментов хеш – таблицы,

- для индексированного файла – 2 + log(N/ M),

- для B- дерева файла – 2 + logt (N/ M), где t – степень В – дерева.

 

Варианты заданий.

1. АТД «Плотный индекс файла». Записи не закрепленные. Ключ записи – строка символов переменной длины.

2. АТД «Плотный индекс файла». Записи закрепленные. Ключ записи – строка символов переменной длины.

3. АТД «Плотный индекс файла». Записи не закрепленные. Ключ записи – вещественное число.

4. АТД «Плотный индекс файла». Записи закрепленные. Ключ записи - вещественное число.

5. АТД «Разреженный индекс файла». Записи не закрепленные. Ключ записи – строка символов переменной длины.

6. АТД «Разреженный индекс файла». Записи не закрепленные. Ключ записи – вещественное число.

7. АТД «Разреженный индекс файла». Записи не закрепленные Ключ записи – вещественное число. Блок файла индексов имеет К = M/10 для возможности дальнейшей вставки записей без выделения новых страниц индексов.

8. АТД «В – дерево файла» с нисходящим разделением полных узлов при вставке записей. Записи не закрепленные. Ключ записи – целое число.

9. АТД «В – дерево файла» с нисходящим разделением полных узлов при вставке записей. Записи закрепленные. Ключ записи – целое число.

10. АТД «В – дерево файла» с восходящим разделением полных узлов при вставке записей. Записи не закрепленные. Ключ записи – целое число.

11. АТД «В – дерево файла» с восходящим разделением полных узлов при вставке записей. Записи закрепленные. Ключ записи – целое число.

12. АТД «Хешированный файл». Метод хеширования – метод цепочек. Записи не закрепленные. Ключ записи – строка символов переменной длины.

13. АТД «Хешированный файл». Метод хеширования – метод цепочек. Записи закрепленные. Ключ записи – строка символов переменной длины.

 


Дата добавления: 2021-01-20; просмотров: 114; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!