Binary Search Tree Python

 

class Node:

def __init__(self,data):
self.left = None
self.right = None
self.val = data

# insert a new node with the given value
def insert(root,node):
if root is None:
root = node
else:
if root.val < node.val:
if root.right is None:
root.right = node
else:
insert(root.right, node)
else:
if root.left is None:
root.left = node
else:
insert(root.left, node)

def inorder(root):
if root:
inorder(root.left)
print(root.val, end=' ')
inorder(root.right)
def preorder(root):
if root:
print(root.val, end=' ')
preorder(root.left)
preorder(root.right)
def postorder(root):
if root:
postorder(root.left)
postorder(root.right)
print(root.val, end=' ')


def delete_node(root):
del root

#Create the following BST
# 8
# / \
# 5 15
# / \ / \
# 4 6 11 16
if __name__ == "__main__":
value = int(input("Enter the value of root node: "))
r = Node(value)
while True:
choice = int(input("Do you insert more nodes: (1/0)"))
if(choice!=1):
break
val = int(input("Enter the value: "))
insert(r,Node(val))
# Print inoder traversal of the BST
print("Inorder Traversal is :")
inorder(r)
print("\nPreorder Traversal is :")
preorder(r)
print("\nPostorder Traversal is :")
postorder(r)

#Operation of delete root node so that memory leakage will not occur
delete_node(r)


# Code by Rakshit_Coding()

Comments