Example #1
0
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)
Example #2
0
 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