3.Shamod 4-3 BST Traversal

59
DATA STRUCTURES AND ALGORITHMS MODULE 4 Tree Traversal (Inorder ,Preorder and Postorder)

description

3.Shamod 4-3 BST Traversal

Transcript of 3.Shamod 4-3 BST Traversal

DATA STRUCTURES AND ALGORITHMS MODULE 4

DATA STRUCTURES AND ALGORITHMSMODULE 4Tree Traversal (Inorder ,Preorder and Postorder)

Tree TraversalUsed to visit each node in the tree exactly once. Three types of traversalPreorderInorderPostorder

Tree TraversalUsed to visit each node in the tree exactly once. Three types of traversalPreorderVisit rootVisit left subtree in preorderVisit right subtree in preorderInorderPostorder

Tree TraversalUsed to visit each node in the tree exactly once. Three types of traversalPreorderInorderVisit left subtree in inorderVisit rootVisit right subtree in inorderPostorder

Tree TraversalUsed to visit each node in the tree exactly once. Three types of traversalPreorderInorderPostorderVisit left subtree in inorderVisit right subtree in inorderVisit root

Preorder traversal1235476rootPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Current = rootPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Current = root1outputPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476root1outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfcurrentPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Current=root1outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Current=root12outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476root12outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Current=root12outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Current=root124outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Root=NULL124outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Current= Root124outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=4Root=NULLPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Current= Root124outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=4Root=NULLPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Current= Root124outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=4Root=NULLPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476CurrentRoot124outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=4Root=NULLPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476Current124outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=5Root=NULLrootPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476124outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=5Root=NULLCurrentrootPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=5Root=NULLCurrentrootPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=5Root=NULLCurrentRoot = NULLPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=5Root=NULLCurrentRoot = NULLPreorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=5Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=2Root=5Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=5Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=5Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

123547612453outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=5Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

123547612453outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=6Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476124536outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=6Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476124536outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=6Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476124536outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=6Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476124536outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=6Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

1235476124536outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=6Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245367outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=6Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245367outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=6Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245367outputCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfCurrent=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfRoot=3Root=6Root=NULLCurrentRoot Preorder (root)Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIf

12354761245367outputCurrentRoot 1.Preorder traversalAlgorithm PREORDER(root)Input: root is the pointer to the root node of the binary search treeOutput: Visiting of all the nodes in preorder fashionData structure: linked structureSteps:Current=rootIf(current!=NULL)VISIT(current)PREORDER(current.llink)PREORDER(current.rlink)EndIfStop

2.Inorder TraversalAlgorithm INORDER(root)Input: root is the pointer to the root node of the binary search treeOutput: Visiting of all the nodes in inorder fashionData structure: linked structureSteps:Current=rootIf(current!=NULL)INORDER(current.llink)VISIT(current)INORDER(current.rlink)EndIfStop

3.Postorder TraversalAlgorithm POSTORDER(root)Input: root is the pointer to the root node of the binary search treeOutput: Visiting of all the nodes in postorder fashionData structure: linked structureSteps:Current=rootIf(current!=NULL)POSTORDER(current.llink)POSTORDER(current.rlink)VISIT(current)EndIfStop

Question :Write the preorder, inorder and postorder traversal of5374186Root 029Answer:PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9 (sorted order)POSTORDER= 0 2 1 4 3 6 9 8 7 55374186Root 029Construct tree from the inorder and preorder traversalsPREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9

Construct tree from the following inorder and preorder traversalsPREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9

Preorder starts with the rootNow split the inorder traversal into 3Left subtree, root, right subtreeRepeat the same process on each subtrees

PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9Root = 5[01234] [5] [6789]0123456789Root

PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9Root = 5[01234] [5] [6789]5012346789Root

PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 95012346789Root

PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9Root = 3[012] [3] [4]

536789Root 0124

PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9536789Root 0124

PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9Root = 1[0] [1] [2]

No more elements to be dividedIn the left subtree

536789Root 1402

PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9536789Root 1402

PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9Root =7

[6] [7] [89]

537Root 1402896

PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9537Root 1402896

PREORDER = 5 3 1 0 2 4 7 6 8 9INORDER= 0 1 2 3 4 5 6 7 8 9Root =8 [8] [9]

No more elements to be dividedIn the right subtree

537Root 1402869Question:Construct the tree from the following inorder and preorder traversalsPOSTORDER = 0 2 1 4 3 6 9 8 7 5INORDER= 0 1 2 3 4 5 6 7 8 9

Answer:POSTORDER = 0 2 1 4 3 6 9 8 7 5INORDER = 0 1 2 3 4 5 6 7 8 9

5374186Root 029Assignment Questionwrite recursive functions of in-order and pre-order traversalswrite non-recursive functions of in-order and pre-order traversals