It is very commonly used in binary search trees because it returns values from the underlying set in order
Preorder (Root, Left, Right)
Traversal Order : 1,2,4,5,3
It can also be used to make a prefix expression (Polish notation) from expression trees
Postorder (Left, Right, Root)
Traversal Order : 4,5,2,3,1
It can be used while freeing nodes and values can delete or free an entire binary tree.
DFS Code Snippet
# inorder : Left , Root , Right
def inOrderTraverse(tree, array):
if tree is not None:
inOrderTraverse(tree.left,array)
array.append(tree.value)
inOrderTraverse(tree.right,array)
return array
# preorder : Root, Left , Right
def preOrderTraverse(tree, array):
if tree is not None:
array.append(tree.value)
preOrderTraverse(tree.left,array)
preOrderTraverse(tree.right,array)
return array
# postorder : Left , Right , Root
def postOrderTraverse(tree, array):
if tree is not None:
postOrderTraverse(tree.left,array)
postOrderTraverse(tree.right,array)
array.append(tree.value)
return array