Найти тему
Николай Лазарев

Очереди (изучаю структуры данных)

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. Оценил меры сложности основных методов.

Также реализовал метод, где очередь реализована с помощью двух стеков. Ссылка на код