Professional Documents
Culture Documents
Untitled
Untitled
ipynb - Colaboratory
# Python3 program to for tree traversals
# A class that represents an individual node in a
# Binary Tree
class Node:
def __init__(self, key):
self.left = None
self.right = None
self.val = key
# A function to do inorder tree traversal
def printInorder(root):
if root:
# First recur on left child
printInorder(root.left)
# then print the data of node
print(root.val),
# now recur on right child
printInorder(root.right)
# Driver code
if __name__ == "__main__":
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
# Function call
print("Inorder")
printInorder(root)
Inorder
# Python3 program to for tree traversals
https://colab.research.google.com/drive/1usmPqLwMdSK8z7lVrz5WIJQysCDSiOyI#scrollTo=SJUfzc6slUho&printMode=true 1/6
11/4/22, 5:55 PM Unit 5 Tree.ipynb - Colaboratory
# A class that represents an individual node in a
# Binary Tree
class Node:
def __init__(self, key):
self.left = None
self.right = None
self.val = key
# A function to do preorder tree traversal
def printPreorder(root):
if root:
# First print the data of node
print(root.val),
# Then recur on left child
printPreorder(root.left)
# Finally recur on right child
printPreorder(root.right)
# Driver code
if __name__ == "__main__":
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
# Function call
print("Preorder traversal of binary tree is")
printPreorder(root)
# Python3 program to for tree traversals
# A class that represents an individual node in a
# Binary Tree
https://colab.research.google.com/drive/1usmPqLwMdSK8z7lVrz5WIJQysCDSiOyI#scrollTo=SJUfzc6slUho&printMode=true 2/6
11/4/22, 5:55 PM Unit 5 Tree.ipynb - Colaboratory
class Node:
def __init__(self, key):
self.left = None
self.right = None
self.val = key
# A function to do postorder tree traversal
def printPostorder(root):
if root:
# First recur on left child
printPostorder(root.left)
# the recur on right child
printPostorder(root.right)
# now print the data of node
print(root.val),
# Driver code
if __name__ == "__main__":
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
# Function call
print("\nPostorder traversal of binary tree is")
printPostorder(root)
# Binary Search Tree operations in Python
# Create a node
class Node:
def __init__(self, key):
self.key = key
self.left = None
self.right = None
https://colab.research.google.com/drive/1usmPqLwMdSK8z7lVrz5WIJQysCDSiOyI#scrollTo=SJUfzc6slUho&printMode=true 3/6
11/4/22, 5:55 PM Unit 5 Tree.ipynb - Colaboratory
# Inorder traversal
def inorder(root):
if root is not None:
# Traverse left
inorder(root.left)
# Traverse root
print(str(root.key) + "->", end=' ')
# Traverse right
inorder(root.right)
# Insert a node
def insert(node, key):
# Return a new node if the tree is empty
if node is None:
return Node(key)
# Traverse to the right place and insert the node
if key < node.key:
node.left = insert(node.left, key)
else:
node.right = insert(node.right, key)
return node
# Find the inorder successor
def minValueNode(node):
current = node
# Find the leftmost leaf
while(current.left is not None):
current = current.left
return current
# Deleting a node
def deleteNode(root, key):
# Return if the tree is empty
if root is None:
return root
# Find the node to be deleted
if key < root.key:
https://colab.research.google.com/drive/1usmPqLwMdSK8z7lVrz5WIJQysCDSiOyI#scrollTo=SJUfzc6slUho&printMode=true 4/6
11/4/22, 5:55 PM Unit 5 Tree.ipynb - Colaboratory
root.left = deleteNode(root.left, key)
elif(key > root.key):
root.right = deleteNode(root.right, key)
else:
# If the node is with only one child or no child
if root.left is None:
temp = root.right
root = None
return temp
elif root.right is None:
temp = root.left
root = None
return temp
# If the node has two children,
# place the inorder successor in position of the node to be deleted
temp = minValueNode(root.right)
root.key = temp.key
# Delete the inorder successor
root.right = deleteNode(root.right, temp.key)
return root
root = None
root = insert(root, 8)
root = insert(root, 3)
root = insert(root, 1)
root = insert(root, 6)
root = insert(root, 7)
root = insert(root, 10)
root = insert(root, 14)
root = insert(root, 4)
print("Inorder traversal: ", end=' ')
inorder(root)
print("\nDelete 10")
root = deleteNode(root, 10)
print("Inorder traversal: ", end=' ')
inorder(root)
Inorder traversal: 1-> 3-> 4-> 6-> 7-> 8-> 10-> 14->
Delete 10
https://colab.research.google.com/drive/1usmPqLwMdSK8z7lVrz5WIJQysCDSiOyI#scrollTo=SJUfzc6slUho&printMode=true 5/6
11/4/22, 5:55 PM Unit 5 Tree.ipynb - Colaboratory
https://colab.research.google.com/drive/1usmPqLwMdSK8z7lVrz5WIJQysCDSiOyI#scrollTo=SJUfzc6slUho&printMode=true 6/6