Perform Traversal Operations on a Binary Tree
Traversal operations on a binary tree involve visiting all nodes in the tree in a specific order. There are three main types of traversal operations:
In-order Traversal: In an in-order traversal, nodes are visited in the following order:
In other words, nodes are visited in non-decreasing order of their values in a binary search tree.
Pre-order Traversal: In a pre-order traversal, nodes are visited in the following order:
Pre-order traversal is often used to create a copy of the tree or to evaluate an expression tree.
Post-order Traversal: In a post-order traversal, nodes are visited in the following order:
Post-order traversal is often used to delete or free nodes in a tree.
Here's how you can perform these traversal operations recursively in Python:
class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def in_order_traversal(node):
if node:
in_order_traversal(node.left)
print(node.value, end=" ")
in_order_traversal(node.right)
def pre_order_traversal(node):
if node:
print(node.value, end=" ")
pre_order_traversal(node.left)
pre_order_traversal(node.right)
def post_order_traversal(node):
if node:
post_order_traversal(node.left)
post_order_traversal(node.right)
print(node.value, end=" ")
# Example usage:
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
print("In-order traversal:")
in_order_traversal(root) # Output: 4 2 5 1 3
print("\nPre-order traversal:")
pre_order_traversal(root) # Output: 1 2 4 5 3
print("\nPost-order traversal:")
post_order_traversal(root) # Output: 4 5 2 3 1
These traversal methods can also be implemented iteratively using a stack or queue data structure, simulating the call stack in a recursive solution. Traversal operations are fundamental in analyzing and manipulating binary trees efficiently.
Thank you,