Upload
robinpt
View
219
Download
0
Embed Size (px)
DESCRIPTION
3.Shamod 4-3 BST Traversal
Citation preview
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