コード例 #1
0
ファイル: red_black_tree.py プロジェクト: SirVer/edu_trees
 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)
コード例 #2
0
ファイル: red_black_tree.py プロジェクト: SirVer/edu_trees
 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)
コード例 #3
0
ファイル: red_black_tree.py プロジェクト: SirVer/edu_trees
 def __init__(self, iter = []):
     BinarySearchTree.__init__(self, iter, RedBlackNode)
コード例 #4
0
ファイル: avl_tree.py プロジェクト: SirVer/edu_trees
 def _delete_node_with_one_child(self, n):
     par = n.parent
     BinarySearchTree._delete_node_with_one_child(self, n)
     self._rebalance_till_root(par)
コード例 #5
0
ファイル: avl_tree.py プロジェクト: SirVer/edu_trees
 def _delete_leaf(self, n):
     par = n.parent
     BinarySearchTree._delete_leaf(self, n)
     self._rebalance_till_root(par)
コード例 #6
0
ファイル: avl_tree.py プロジェクト: SirVer/edu_trees
 def __init__(self, iter = []):
     BinarySearchTree.__init__(self, iter, AVLNode)