Menu

[Solved]Java Question 1 Non Recursive Order Traverse Binary Tree Using Stack Obvious Way Traverse Q37182455

In java

Question 1: Non-recursive In-order traverse of a binary tree

Using Stack is the obvious way to traverse tree withoutrecursion. Below is an algorithm for traversing binary tree usingstack. See this for step wise step execution of the algorithm.

1) Create an empty stack S.2) Initialize current node as root3) Push the current node to S and set current = current->left until current is NULL4) If current is NULL and stack is not empty then a) Pop the top item from stack. b) Print the popped item, set current = popped_item->right c) Go to step 3.5) If current is NULL and stack is empty then we are done.

Let us consider the below tree for example

1 / 2 3 / 4 5Step 1 Creates an empty stack: S = NULLStep 2 sets current as address of root: current -> 1Step 3 Pushes the current node and set current = current->left until current is NULL current -> 1 push 1: Stack S -> 1 current -> 2 push 2: Stack S -> 2, 1 current -> 4 push 4: Stack S -> 4, 2, 1 current = NULLStep 4 pops from S a) Pop 4: Stack S -> 2, 1 b) print “4” c) current = NULL /*right of 4 */ and go to step 3Since current is NULL step 3 doesn’t do anything. Step 4 pops again. a) Pop 2: Stack S -> 1 b) print “2” c) current -> 5/*right of 2 */ and go to step 3Step 3 pushes 5 to stack and makes current NULL Stack S -> 5, 1 current = NULLStep 4 pops from S a) Pop 5: Stack S -> 1 b) print “5” c) current = NULL /*right of 5 */ and go to step 3Since current is NULL step 3 doesn’t do anythingStep 4 pops again. a) Pop 1: Stack S -> NULL b) print “1” c) current -> 3 /*right of 5 */ Step 3 pushes 3 to stack and makes current NULL Stack S -> 3 current = NULLStep 4 pops from S a) Pop 3: Stack S -> NULL b) print “3” c) current = NULL /*right of 3 */ Traversal is done now as stack S is empty and current is NULL.

Write a non-recursive application for the in-order traverse fora binary tree.

Question 2: Level order traverse of a binary tree (breadth firsttraversal)

1 2 3 4 5

Level order traversal of the above tree is 1 2 3 4 5.

We can use a FIFO queue to implement the level order tranversalof a binary tree.

For each node, first the node is visited and then it’s childnodes are put in a FIFO queue.

Step 1: Create an empty queueStep 2: Start from the root, enqueue the rootStep 3: Loop whenever the queue is not empty a) dequeue a node from the front of the queue and print the data b) Enqueue the node’s children (first left then right children) to the queue Write a method to implement the level order traversal of a binary tree.

Notes: For both question, you can use the Binary Tree class andthe Node class defined in the book, you can also define your ownNode class and Binary Tree class.

1 2 3 4 5 Show transcribed image text 1 2 3 4 5

Expert Answer


Answer to In java Question 1: Non-recursive In-order traverse of a binary tree Using Stack is the obvious way to traverse tree wit… . . .

OR


Leave a Reply

Your email address will not be published. Required fields are marked *