text: #include <stdio.h>
  #include <string.h>
  #include <math.h>
  #include <stdlib.h>
  
  struct node {
      
      int data;
      struct node *left;
      struct node *right;
    
  };
  
  struct node* insert( struct node* root, int data ) {
  		
  	if(root == NULL) {
  	
          struct node* node = (struct node*)malloc(sizeof(struct node));
  
          node->data = data;
  
          node->left = NULL;
          node->right = NULL;
          return node;
  	  
  	} else {
        
  		struct node* cur;
  		
  		if(data <= root->data) {
              cur = insert(root->left, data);
              root->left = cur;
  		} else {
              cur = insert(root->right, data);
              root->right = cur;
  		}
  	
  		return root;
  	}
  }
  
  /* you only have to complete the function given below.  
  node is defined as  
  
  struct node {
      
      int data;
      struct node *left;
      struct node *right;
    
  };
  
  */
  void postOrder( struct node *root) {
        if(root!=NULL)
        {
         postOrder(root->left);
         postOrder(root->right);
         printf("%d ",root->data);
        }
        
  }
  
  
  int main() {
    
      struct node* root = NULL;
      
      int t;
      int data;
  
      scanf("%d", &t);
  
      while(t-- > 0) {
          scanf("%d", &data);
          root = insert(root, data);
      }
    
  	postOrder(root);
      return 0;
  }
  