class LinkedListQueue: def __init__(self, capacity=float("inf")): self._queue = SinglyLinkedList() self._capacity = capacity def enqueue(self, data): if self.get_size() < self._capacity: self._queue.add_item_end(data) else: raise OverflowError() def dequeue(self): if self.is_empty(): return None else: return self._queue.get_first_item() def peek(self): return self._queue.peek_first_item() def get_size(self): return self._queue.get_size() def get_capacity(self): return self._capacity def is_empty(self): return self._queue.is_empty()