По договоренности
Очередь на массиве. Java.
1. Найдите инвариант структуры данных очередь. Определите функции, которые необходимы для реализации очереди. Найдите их пред- и постусловия.
2. Реализуйте классы, представляющие циклическую очередь с применением массива.
- Класс ArrayQueueModule должен реализовывать один экземпляр очереди с использованием переменных класса.
- Класс ArrayQueueADT должен реализовывать очередь в виде абстрактного типа данных (с явной передачей ссылки на экземпляр очереди).
- Класс ArrayQueue должен реализовывать очередь в виде класса (с неявной передачей ссылки на экземпляр очереди).
- Должны быть реализованы следующие функции (процедуры) / методы:
a) enqueue добавить элемент в очередь;
b) element первый элемент в очереди;
c) dequeue удалить и вернуть первый элемент в очереди;
d) size текущий размер очереди;
e) isEmpty является ли очередь пустой;
f) clear удалить все элементы из очереди.
- Инвариант, пред- и постусловия записываются в исходном коде в виде комментариев.
- Обратите внимание на инкапсуляцию данных и кода во всех трех реализациях.
3. Напишите тесты реализованным классам.
В дополнение к коду нужны объяснения работы тех или иных методов, функций. Пред- и постусловия обязательны. Срок выполнения до 19.11.2018. Прикрепил файл откомпилированных тестов, которые должна проходить программа. Классы должны находиться в пакете queue.