w3resource

Python: Binary Search Tree (BST)- Exercises, Practice, Solution

Binary Search Tree: [ 6 exercises with solution]

[An editor is available at the bottom of the page to write and execute the scripts.]

1. Write a Python program to create a Balanced Binary Search Tree (BST) using an array (given) elements where array elements are sorted in ascending order. Go to the editor
Click me to see the sample solution

2. Write a Python program to find the closest value of a given target value in a given non-empty Binary Search Tree (BST) of unique values. Go to the editor
Click me to see the sample solution

3. Write a Python program to check whether a given a binary tree is a valid binary search tree (BST) or not. Go to the editor

Let a binary search tree (BST) is defined as follows:
The left subtree of a node contains only nodes with keys less than the node's key.
The right subtree of a node contains only nodes with keys greater than the node's key.
Both the left and right subtrees must also be binary search trees.

Example 1:
    2
   / \
  1   3
Binary tree [2,1,3], return true.
Example 2:
    1
   / \
  2   3
Binary tree [1,2,3], return false.

Click me to see the sample solution

4. Write a Python program to delete a node with the given key in a given Binary search tree (BST). Go to the editor
Note: Search for a node to remove. If the node is found, delete the node.
Click me to see the sample solution

5. Write a Python program to convert a given array elements to a height balanced Binary Search Tree (BST). Go to the editor
Click me to see the sample solution

6. Write a Python program to find the kth smallest element in a given a binary search tree. Go to the editor
Click me to see the sample solution

Python Code Editor:

More to Come !

Do not submit any solution of the above exercises at here, if you want to contribute go to the appropriate exercise page.



Python: Tips of the Day

Calling an external command from Python:

The subprocess module in the standard library:

Example:

import subprocess
subprocess.run(["ls", "-l"])

The advantage of subprocess vs. system is that it is more flexible (you can get the stdout, stderr, the "real" status code, better error handling, etc...).

The official documentation recommends the subprocess module over the alternative os.system():

The subprocess module provides more powerful facilities for spawning new processes and retrieving their results; using that module is preferable to using this function [os.system()].

The Replacing Older Functions with the subprocess Module section in the subprocess documentation may have some helpful recipes.

For versions of Python before 3.5, use call:

import subprocess
subprocess.call(["ls", "-l"])

Ref: https://bit.ly/2ANeuPR