rajamit872

Implementation of Binary Tree Using Linked List

Oct 8th, 2014
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.04 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4.  
  5.  
  6. struct btreenode
  7. {
  8. struct btreenode *leftchild;
  9. int data;
  10. struct btreenode *rightchild;
  11. };
  12.  
  13.  
  14. insert(struct btreenode**,int);
  15. inorder(struct btreenode*);
  16. preorder(struct btreenode*);
  17. postorder(struct btreenode*);
  18.  
  19. int main()
  20. {
  21. struct btreenode *bt;
  22. int req, i=0, num;
  23.  
  24. bt=NULL;
  25. clrscr();
  26.  
  27. printf("Specify the no of data to be entered::\n");
  28. scanf("%d",&req);
  29.  
  30. while(i<req)
  31. {
  32. printf("Enter the ith i.e %d number::",i);
  33. scanf("%d",&num);
  34. insert(&bt , num);   //need to define later.....function call
  35. i++;
  36. }
  37.  
  38. clrscr();
  39.  
  40. printf("Inorder Traversal::\n");
  41. inorder(bt);   //define later
  42.  
  43. printf("\n\nPreorder Traversal::\n");
  44. preorder(bt);   //define later
  45.  
  46. printf("\n\n    Post order Traversal::\n");
  47. postorder(bt);   //define later
  48.  
  49.  
  50. getch();
  51.  return 0;
  52. }
  53.         /*insert a node to an binary tree*/
  54.         insert(struct btreenode **sr, int num)
  55.         {
  56.         if(*sr == NULL)
  57.         {
  58.         *sr = malloc(sizeof(struct btreenode));
  59.  
  60.         (*sr)->leftchild=NULL;
  61.         (*sr)->data = num;
  62.         (*sr)->rightchild = NULL;
  63.         }
  64.  
  65.         else  /*search the node where to be add*/
  66.         {
  67.         /*if new data is less then traverse to left*/
  68.         if(num<((*sr)->data))
  69.         insert(&((*sr)->leftchild),num);
  70.         else
  71.         insert(&((*sr)->rightchild), num);
  72.  
  73.         }
  74.         }
  75.  
  76.     /*traversing the node in inoreder fashion*/
  77.  
  78.     inorder(struct btreenode *sr)
  79.     {
  80.  
  81.     if(sr!=NULL)
  82.     {
  83.     inorder(sr->leftchild);
  84.     printf("%d    ",sr->data); //print the data that has already traversed
  85.                 //whose left child is null
  86.     inorder(sr->rightchild);
  87.     }
  88.     else
  89.     {}
  90.     }
  91.  
  92.  
  93.     preorder(struct btreenode *sr)
  94.     {
  95.  
  96.     if(sr!=NULL)
  97.     {
  98.     printf("%d    ",sr->data); //print the data that has already traversed
  99.  
  100.     preorder(sr->leftchild);
  101.                 //whose left child is null
  102.     preorder(sr->rightchild);
  103.     }
  104.     else
  105.     {}
  106.     }
  107.  
  108.     postorder(struct btreenode *sr)
  109.     {
  110.  
  111.     if(sr!=NULL)
  112.     {
  113.     postorder(sr->leftchild);
  114.     postorder(sr->rightchild);
  115.  
  116.     printf("%d    ",sr->data); //print the data that has already traversed
  117.                 //whose left child is null
  118.  
  119.     }
  120.     else
  121.     {}
  122.     }
Advertisement
Add Comment
Please, Sign In to add comment