Feb 6, 2022
Реализовал класс Queue на основе двунправленного связанного списка
В данном классе реализовал следующие методы:
- def init(self): ‘'’инициализация хранилища данных’’
- def enqueue(self, item): ‘'’Добавляем значение в список’’’ # вставка в хвост
- def dequeue(self) -> Optional[int]: # мера сложности О(1) ‘'’выдача из головы’’’
- def size(self) -> int: # мера сложности О(n) ‘'’Размер’’’
- def rotation(self, quantity_elements: int): ‘'’поворот очереди’’’
Так же использовал вспомогательные методы:
- def print_all_nodes(self): ‘'’Печать значений всех узлов’’’
- def LinkedList_in_List(self): ‘'’Вспомогательный метод для тестирования. Выводит значения связанного списка в обычный список’’’
Подготовил тесты на основные методы. Ссылка на код тестов
В качестве граничных вариантов учел, когда в очереди единственное значение, а также когда очередь пуста. Проверил код с помощью линтера pylint. Аннотацию типов проверил с помощью mypy. Оценил меры сложности основных методов.
Также реализовал метод, где очередь реализована с помощью двух стеков. Ссылка на код