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
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
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
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)
def min(self): if self.is_empty(): raise EmptyError('Priority queue is empty.') item = self._data[0] return (item._key, item._value)
def pop(self): if self.is_empty(): raise EmptyError('Stack is empty') return self._data.pop()
def first(self): if self.is_empty(): raise EmptyError('Queue is empty') head = self._tail._next return head._element
def first(self): if self.is_empty(): raise EmptyError('Dequeue is empty') return self._header._next._element
def delete_last(self): if self.is_empty(): raise EmptyError('Dequeue is empty') return self._delete_node(self._tailer._prev)
def delete_first(self): if self.is_empty(): raise EmptyError('Dequeue is empty') return self._delete_node(self._header._next)
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