fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. struct tree
  5. {
  6. struct tree *left;
  7. struct tree *right;
  8. int value;
  9. };
  10.  
  11. typedef struct tree node;
  12.  
  13. void insertNode(node **root, int val)
  14. {
  15. node *temp = NULL;
  16. if(!(*root))
  17. {
  18. temp = (node*) malloc(sizeof(node));
  19. temp->value = val;
  20. temp->left = NULL;
  21. temp->right = NULL;
  22. *root = temp;
  23. }
  24.  
  25. if(val < (*root)->value)
  26. insertNode(&(*root)->left, val);
  27.  
  28. if(val >= (*root)->value)
  29. insertNode(&(*root)->right, val);
  30. }
  31.  
  32. void preOrder(node *root)
  33. {
  34. if(root)
  35. { printf(" %d",root->value);
  36. preOrder(root->left);
  37. preOrder(root->right);
  38. }
  39. }
  40.  
  41. void inOrder(node *root)
  42. {
  43. if(root)
  44. {
  45. inOrder(root->left);
  46. printf(" %d",root->value);
  47. inOrder(root->right);
  48. }
  49. }
  50.  
  51. void postOrder(node *root)
  52. {
  53. if(root)
  54. {
  55. postOrder(root->left);
  56. postOrder(root->right);
  57. printf(" %d",root->value);
  58. }
  59. }
  60.  
  61. void delTree(node *root)
  62. {
  63. if(root)
  64. {
  65. delTree(root->left);
  66. delTree(root->right);
  67. free(root);
  68. }
  69. }
  70.  
  71. int main()
  72. {
  73. int val;
  74. char ch; ch = 'y';
  75. node *root;
  76.  
  77. while(ch == 'y')
  78. {
  79. scanf("Enter the node value: %d", &val);
  80. insertNode(&root, val);
  81. scanf("Want to enter more: %c", &ch);
  82. }
  83.  
  84. printf("\nInOrder traversal:\n");
  85. inOrder(root);
  86. printf("\nPreOrder traversal:\n");
  87. preOrder(root);
  88. printf("\nPostOrder traversal:\n");
  89. postOrder(root);
  90.  
  91. delTree(root);
  92. printf("Tree Deleted.");
  93.  
  94. return 0;
  95. }
  96.  
Runtime error #stdin #stdout 0s 2292KB
stdin
2
y
5
y
3
y
7
y
1
y
0
y
3
n
stdout
Standard output is empty