Advertisement
mhrabbi

Binary Search Tree In,Pre,Post (Order) Traverse

Nov 29th, 2019
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.71 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. struct node
  5. {
  6.     int data;
  7.     struct node *left;
  8.     struct node *right;
  9. };
  10.  
  11. struct node* insert(struct node*,int);
  12. struct node* createnode(int);
  13. void inorder(struct node*);
  14. void preorder(struct node*);
  15. void postorder(struct node*);
  16.  
  17. int main()
  18. {
  19.     struct node *root=NULL;
  20.  
  21.     root=insert(root,8);
  22.  
  23.     insert(root,3);
  24.     insert(root,1);
  25.     insert(root,6);
  26.     insert(root,7);
  27.     insert(root,10);
  28.     insert(root,14);
  29.     insert(root,4);
  30.  
  31.  
  32.     printf("In-Order traverse\n");
  33.     inorder(root);
  34.  
  35.     printf("\nPre-Order Traverse\n");
  36.     preorder(root);
  37.  
  38.     printf("\nPost order Traverse\n");
  39.     postorder(root);
  40.  
  41.  
  42. }
  43.  
  44. struct node* insert(struct node* root,int data)
  45. {
  46.    if(root==NULL)
  47.    {
  48.        return createnode(data);
  49.    }
  50.    else if(data < root->data)
  51.    {
  52.        root->left=insert(root->left,data);
  53.    }
  54.    else
  55.    {
  56.        root->right=insert(root->right,data);
  57.    }
  58.    return root;
  59. }
  60.  
  61. struct node* createnode(int data)
  62. {
  63.     struct node *newnode;
  64.     newnode=(struct node *)malloc(sizeof(struct node));
  65.  
  66.     newnode->left=NULL;
  67.     newnode->data=data;
  68.     newnode->right=NULL;
  69.  
  70.     return newnode;
  71. }
  72.  
  73. void inorder(struct node *root)
  74. {
  75.     if(root==NULL)
  76.     {
  77.         return;
  78.     }
  79.  
  80.     inorder(root->left);
  81.     printf("%d ->",root->data);
  82.     inorder(root->right);
  83.  
  84. }
  85.  
  86. void preorder(struct node *root)
  87. {
  88.     if(root==NULL)
  89.       return;
  90.  
  91.       printf("%d ->",root->data);
  92.       preorder(root->left);
  93.       preorder(root->right);
  94. }
  95.  
  96. void postorder(struct node *root)
  97. {
  98.     if(root==NULL)
  99.       return;
  100.       postorder(root->left);
  101.       postorder(root->right);
  102.       printf("%d ->",root->data);
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement