Esempio n. 1
0
 def _delete_node_with_one_child(self, M):
     C = M.l or M.r
     assert(M.color is BLACK)
     if C.color is RED:
         C.color = BLACK
     BinarySearchTree._delete_node_with_one_child(self, M)
Esempio n. 2
0
 def _delete_leaf(self, n):
     if n.color is RED: # simple case
         BinarySearchTree._delete_leaf(self, n)
     else:
         self._delete_case1(n)
         BinarySearchTree._delete_leaf(self, n)
Esempio n. 3
0
 def __init__(self, iter = []):
     BinarySearchTree.__init__(self, iter, RedBlackNode)
Esempio n. 4
0
 def _delete_node_with_one_child(self, n):
     par = n.parent
     BinarySearchTree._delete_node_with_one_child(self, n)
     self._rebalance_till_root(par)
Esempio n. 5
0
 def _delete_leaf(self, n):
     par = n.parent
     BinarySearchTree._delete_leaf(self, n)
     self._rebalance_till_root(par)
Esempio n. 6
0
 def __init__(self, iter = []):
     BinarySearchTree.__init__(self, iter, AVLNode)