Пример #1
0
        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))
Пример #2
0

# 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 ->
        
Пример #3
0
            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")
Пример #5
0
            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")
Пример #6
0
    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"))
Пример #7
0
    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 = []
Пример #8
0
        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 ->