return distance # Driver program to test above function if __name__ == "__main__": """ Let us create following BST 50 / \ 30 70 / \ / \ 20 40 60 80 / \ 15 25 """ root = None root = insert(root, 50) insert(root, 30) insert(root, 20) insert(root, 15) insert(root, 25) insert(root, 40) insert(root, 70) insert(root, 60) insert(root, 80) print("\n---- Using V1 ----\n") key = 25 distance = distance_from_root_v1(root, key) print("Distance from root({root}) to {key} is {distance}".format( root=root.key, key=key, distance=distance))
# Driver program to test above function if __name__ == "__main__": """ Unbalanced BST 50 / \ 30 70 \ 80 \ 90 """ root = None root = insert(root, 50) insert(root, 30) insert(root, 70) insert(root, 80) insert(root, 90) print("\n ---- Unbalanced BST ----\n") print_tree(root) print("\n ---- Balanced BST ----\n") balanced_root = balance_tree(root) print_tree(balanced_root) """ Balanced BST ->
and is_bst_v2(root.right) ) # Driver program to test above function if __name__ == "__main__": """ Let us create following BST 50 / \ 30 70 / \ / \ 20 40 60 80 / \ 15 25 """ root1 = None root1 = insert(root1, 50) insert(root1, 30) insert(root1, 20) insert(root1, 15) insert(root1, 25) insert(root1, 40) insert(root1, 70) insert(root1, 60) insert(root1, 80) root2 = Node( 1, left=Node( 2, left=Node( 50
return lpath or rpath # Driver program to test above function if __name__ == "__main__": """ Let us create following BST 50 / \ 30 70 / \ / \ 20 40 60 80 / \ 15 25 """ root = None root = insert(root, 50) insert(root, 30) insert(root, 20) insert(root, 15) insert(root, 25) insert(root, 40) insert(root, 70) insert(root, 60) insert(root, 80) key1 = 40; key2 = 15 print ("\n----- Using V1 -----\n") print ("LCA of {key1} & {key2} is {lca}".format(key1=key1, key2=key2, lca=lca_v1(root, key1, key2))) print ("\n----- Using V2 -----\n")
and is_bst_v2(root.right)) # Driver program to test above function if __name__ == "__main__": """ Let us create following BST 50 / \ 30 70 / \ / \ 20 40 60 80 / \ 15 25 """ root1 = None root1 = insert(root1, 50) insert(root1, 30) insert(root1, 20) insert(root1, 15) insert(root1, 25) insert(root1, 40) insert(root1, 70) insert(root1, 60) insert(root1, 80) root2 = Node(1, left=Node(2, left=Node(50)), right=Node(3, left=Node(4), right=Node(5, left=Node(6)))) print("\n ---------- USING V1 ---------- \n")
inorder_traversal = [] inorder(root, inorder_traversal) return find_pair(inorder_traversal, sum) # Driver program to test above function if __name__ == "__main__": """ Let us create following BST 50 / \ 30 70 / \ / \ 10 35 65 90 """ root = None root = insert(root, 50) insert(root, 30) insert(root, 10) insert(root, 35) insert(root, 70) insert(root, 65) insert(root, 90) sum = 80 print( "\n --------------------------- Using V1 ---------------------------\n" ) pair = pair_with_sum_v1(root, sum) print("Pair with sum = {} is {}".format( sum, "present: " + str(pair) if pair else "not present"))
inorder_traversal = [] inorder(root, inorder_traversal) return find_pair(inorder_traversal, sum) # Driver program to test above function if __name__ == "__main__": """ Let us create following BST 50 / \ 30 70 / \ / \ 10 35 65 90 """ root = None root = insert(root, 50) insert(root, 30) insert(root, 10) insert(root, 35) insert(root, 70) insert(root, 65) insert(root, 90) sum = 80 print("\n --------------------------- Using V1 ---------------------------\n") pair = pair_with_sum_v1(root, sum) print("Pair with sum = {} is {}".format(sum, "present: " + str(pair) if pair else "not present")) print("\n --------------------------- Using V1 ---------------------------\n") pairs = []
inorder(root.right, inorder_arr) # Driver program to test above function if __name__ == "__main__": """ Unbalanced BST 50 / \ 30 70 \ 80 \ 90 """ root = None root = insert(root, 50) insert(root, 30) insert(root, 70) insert(root, 80) insert(root, 90) print ("\n ---- Unbalanced BST ----\n") print_tree(root) print ("\n ---- Balanced BST ----\n") balanced_root = balance_tree(root) print_tree(balanced_root) """ Balanced BST ->