GATE | GATE CS 2020 | Question 15

11 Aug, 2021
The preorder traversal of a binary search tree is 15, 10, 12, 11, 20, 18, 16, 19. Which one of the following is the postorder traversal of the tree ?(A) 10, 11, 12, 15, 16, 18, 19, 20(B) 11, 12, 10, 16, 19, 18, 20, 15(C) 20, 19, 18, 16, 15, 12, 11, 10(D) 19, 16, 18, 20, 11, 12, 10, 15Answer: (B)Explanation: Please refer – Find postorder traversal of BST from preorder traversal
// C++ program for finding postorder // traversal of BST from preorder traversal #include <bits/stdc++.h> using namespace std;   // Function to find postorder traversal from // preorder traversal. void findPostOrderUtil(int pre[], int n, int minval,                     int maxval, int& preIndex) {       // If entire preorder array is traversed then     // return as no more element is left to be     // added to post order array.     if (preIndex == n)         return;       // If array element does not lie in range specified,     // then it is not part of current subtree.     if (pre[preIndex] < minval || pre[preIndex] > maxval) {         return;     }       // Store current value, to be printed later, after     // printing left and right subtrees. Increment     // preIndex to find left and right subtrees,     // and pass this updated value to recursive calls.     int val = pre[preIndex];     preIndex++;       // All elements with value between minval and val     // lie in left subtree.     findPostOrderUtil(pre, n, minval, val, preIndex);       // All elements with value between val and maxval     // lie in right subtree.     findPostOrderUtil(pre, n, val, maxval, preIndex);       cout << val << " "; }   // Function to find postorder traversal. void findPostOrder(int pre[], int n) {       // To store index of element to be     // traversed next in preorder array.     // This is passed by reference to     // utility function.     int preIndex = 0;       findPostOrderUtil(pre, n, INT_MIN, INT_MAX, preIndex); }   // Driver code int main() {     int pre[] = { 15, 10, 12, 11, 20, 18, 16, 19 };       int n = sizeof(pre) / sizeof(pre[0]);       // Calling function     findPostOrder(pre, n);     return 0; } 
Code – https://ide.geeksforgeeks.org/t49kAtJwr7
Option (B) is correct.
GATE PYQs 2019 and 2020 | Programming and Data Structures | Shubham Agrawal | GeeksforGeeks GATE CSE - YouTubeGeeksforGeeks GATE Computer Science17.5K subscribersGATE PYQs 2019 and 2020 | Programming and Data Structures | Shubham Agrawal | GeeksforGeeks GATE CSEWatch laterShareCopy linkInfoShoppingTap to unmuteIf playback doesn't begin shortly, try restarting your device.You're signed outVideos you watch may be added to the TV's watch history and influence TV recommendations. To avoid this, cancel and sign in to YouTube on your computer.CancelConfirmMore videosMore videosSwitch cameraShareInclude playlistAn error occurred while retrieving sharing information. Please try again later.Watch on0:000:0037:49 / 1:16:33•Live•<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage"><a href="https://www.youtube.com/watch?v=fP8QED8d6ws" target="_blank">Try watching this video on www.youtube.com</a>, or enable JavaScript if it is disabled in your browser.</div></div>Quiz of this Question
GATE
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.