def pop(self):
     if self.is_empty():
         raise EmptyError('Stack is empty')
     answer = self._head._element
     self._head = self._head._next
     self._size -= 1
     return answer
Example #2
0
 def remove_min(self):
     if self.is_empty():
         raise EmptyError('Priority queue is empty.')
     self._swap(0, len(self._data)-1)
     item = self._data.pop()
     self._downheap(0)
     return (item._key, item._value)
 def dequeue(self):
     if self.is_empty():
         raise EmptyError('Queue is empty')
     answer = self._data[self._front]
     self._data[self._front] = None
     self._front = (self._front + 1) % len(self._data)
     self._size -= 1 
     return answer
Example #4
0
 def dequeue(self):
     if self.is_empty():
         raise EmptyError('Queue is empty')
     oldhead = self._tail._next
     if self._size == 1:
         self._tail = None
     else:
         self._tail._next = oldhead._next
     self._size -= 1
     return oldhead._element
Example #5
0
 def _find_min(self):
     """Return Position of item with minimum key."""
     if self.is_empty():
         raise EmptyError('Priority queue is empty')
     small = self._data.first()
     walk = self._data.after(small)
     while walk is not None:
         if walk.element() < small.element():
             small = walk
         walk = self._data.after(walk)
     return small
 def remove_min(self):
     if self.is_empty():
         raise EmptyError('Priority queue us empty')
     item = self._data.delete(self._data.first())
     return (item._key, item._value)
 def min(self):
     if self.is_empty():
         raise EmptyError('Priority queue is empty')
     p = self._data.first()
     item = p.element()
     return (item._key, item._value)
Example #8
0
 def min(self):
     if self.is_empty():
         raise EmptyError('Priority queue is empty.')
     item = self._data[0]
     return (item._key, item._value)
Example #9
0
 def pop(self):
     if self.is_empty():
         raise EmptyError('Stack is empty')
     return self._data.pop()
Example #10
0
 def first(self):
     if self.is_empty():
         raise EmptyError('Queue is empty')
     head = self._tail._next
     return head._element
Example #11
0
 def first(self):
     if self.is_empty():
         raise EmptyError('Dequeue is empty')
     return self._header._next._element
Example #12
0
 def delete_last(self):
     if self.is_empty():
         raise EmptyError('Dequeue is empty')
     return self._delete_node(self._tailer._prev)
Example #13
0
 def delete_first(self):
     if self.is_empty():
         raise EmptyError('Dequeue is empty')
     return self._delete_node(self._header._next)
Example #14
0
 def last(self):
     if self.is_empty():
         raise EmptyError('Dequeue is empty')
     return self._tailer._prev._element
 def first(self):
     if self.is_empty():
         raise EmptyError('Queue is empty')
     return self._data[self._front]
 def top(self):
     if self.is_empty():
         raise EmptyError('Stack is empty')
     return self._head._element