class ArrayQueue: def __init__(self, size=16): self._items = Array(size=16) def is_empty(self): return self._items.logic() == 0 def __len__(self): return self._items.logic() def __iter__(self): iter(self._items) def clear(self, size): self._items = Array(size) def add_front(self, item): self._items.insert(0, item) def add_rear(self, item): self._items.append(item) def remove_front(self): return self._items.pop(0) def remove_rear(self): return self._items.pop(len(self)-1)
def add(self, item): """Inserts item at rear of the queue.""" if len(self._items) == self._size: #resize array newArr = Array(self._size * 2) for item in self._items: newArr.append(item) self._items = newArr self._items[self._rear] = item if self._rear == len(self._items) - 1: self._rear = 0 self._rear += 1 else: self._rear += 1 self._size += 1