Beispiel #1
0
 def __delitem__(self, k):
     if not self.is_empty():
         p = self._subtree_search(self.root(), k)
         if k == p.key():
             self.delete(p)
             return
     raise Empty('Tree is empty')
Beispiel #2
0
 def __getitem__(self, k):
     if self.is_empty():
         raise Empty('Tree is empty')
     else:
         p = self._subtree_search(self.root(), k)
         if k != p.key():
             raise KeyError('Key Error: ' + repr(k))
         return p.value()
 def dequeue(self):
     if self.is_empty():
         raise Empty('Queue is empty')
     removed = self._head._element
     self._head = self._head._next
     self._size -= 1
     if self.is_empty():
         self._tail = None    
     return removed
Beispiel #4
0
 def find_gt(self, k):
     if self.is_empty():
         raise Empty("Tree is empty")
     else:
         p = self.find_position(k)
         if not k < p.key():
             p = self.after(p)
         if p is None:
             return None
         else:
             return (p.key(), p.value())
Beispiel #5
0
 def find_lt(self, k):
     if self.is_empty():
         raise Empty("Tree is empty")
     else:
         p = self.find_position(k)
         if not p.key() < k:
             p = self.before(p)
         if p is None:
             return None
         else:
             return (p.key(), p.value())
Beispiel #6
0
 def find_range(self, start_k, stop_k):
     if not self.is_empty():
         if start_k is None:
             p = self.first()
         else:
             p = self.find_position(start_k)
             if p.key() < start_k:
                 p = self.after(p)
         while p is not None and (stop_k is None or p.key() < stop_k):
             yield (p.key(), p.value())
             p = self.after(p)
     raise Empty("Tree is empty")
 def first(self):
     if self.is_empty():
         raise Empty('Queue is empty')
     return self._head._element
Beispiel #8
0
 def find_max(self):
     if self.is_empty():
         raise Empty("Tree is empty")
     else:
         p = self.last()
         return (p.key(), p.value())