w3resource

Python Binary Search Tree: Convert a array to Binary Search Tree (BST)

Python Binary Search Tree: Exercise-5 with Solution

Write a Python program to convert a given array of elements to a height balanced Binary Search Tree (BST).

Note: The selection sort improves on the bubble sort by making only one exchange for every pass through the list.

Sample Solution:

Python Code:

class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

def array_to_bst(array_nums):
    if not array_nums:
        return None
    mid_num = len(array_nums)//2
    node = TreeNode(array_nums[mid_num])
    node.left = array_to_bst(array_nums[:mid_num])
    node.right = array_to_bst(array_nums[mid_num+1:])
    return node

def preOrder(node): 
    if not node: 
        return      
    print(node.val)
    preOrder(node.left) 
    preOrder(node.right)   

array_nums = [1,2,3,4,5,6,7]

print("Original array:")
print(array_nums)
result = array_to_bst(array_nums)
print("\nArray to a height balanced BST:")
print(preOrder(result))

Sample Output:

Original array:
[1, 2, 3, 4, 5, 6, 7]

Array to a height balanced BST:
4
2
1
3
6
5
7
None

Flowchart:

Flowchart: Convert a array to Binary Search Tree.

Python Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Python program to delete a node with the given key in a given Binary search tree (BST).
Next: Write a Python program to find the kth smallest element in a given a binary search tree.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/python-exercises/data-structures-and-algorithms/python-binary-search-tree-exercise-5.php