Sorted order printing of a given array that represents a BST

2.3

Given an array that stores a complete Binary Search Tree, write a function that efficiently prints the given array in ascending order.

For example, given an array [4, 2, 5, 1, 3], the function should print 1, 2, 3, 4, 5

Solution:
Inorder traversal of BST prints it in ascending order. The only trick is to modify recursion termination condition in standard Inorder Tree Traversal.

Implementation:

C

#include<stdio.h>

void printSorted(int arr[], int start, int end)
{     
  if(start > end)
    return;

  // print left subtree
  printSorted(arr, start*2 + 1, end);

  // print root
  printf("%d  ", arr[start]);

  // print right subtree
  printSorted(arr, start*2 + 2, end);  
}

int main()
{
  int arr[] = {4, 2, 5, 1, 3};
  int arr_size = sizeof(arr)/sizeof(int);
  printSorted(arr, 0, arr_size-1);
  getchar();
  return 0;
}

Java

// JAVA Code for Sorted order printing of a
// given array that represents a BST
class GFG{
    
private static void printSorted(int[] arr, int start,
                                        int end) {
        if(start > end)
            return;
            
        // print left subtree
        printSorted(arr, start*2 + 1, end);
            
        // print root
        System.out.print(arr[start] + " ");
            
        // print right subtree
        printSorted(arr, start*2 + 2, end); 
        }
        
    // driver program to test above function
    public static void main(String[] args) {
        int arr[] = {4, 2, 5, 1, 3};
            
        printSorted(arr, 0, arr.length-1);
    }
}
    
// This code is contributed by Arnav Kr. Mandal.


Output:

1 2 3 4 5 

Time Complexity: O(n)

Please write comments if you find the above solution incorrect, or find better ways to solve the same problem.

GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.

Recommended Posts:



2.3 Average Difficulty : 2.3/5.0
Based on 110 vote(s)










Writing code in comment? Please use ide.geeksforgeeks.org, generate link and share the link here.