Advertisement
Guest User

Untitled

a guest
Sep 25th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #define R return
  4. struct node { int data; struct node* left; struct node* right; };
  5.  
  6. struct node* insert(struct node* tree, int val)
  7. {
  8. if (tree == NULL) {
  9. tree = (struct node*) malloc(sizeof(struct node));
  10. tree->left = NULL;
  11. tree->right = NULL;
  12. tree->data = val;
  13. } else {
  14. if (val < tree->data) {
  15. printf("INSIDE L\n");
  16. tree->left = insert(tree->left, val);
  17. } else {
  18. printf("INSIDE R\n");
  19. tree->right = insert(tree->right, val);
  20. }
  21. }
  22. R tree;
  23. }
  24.  
  25. struct node* create(struct node* tree)
  26. {
  27. int val;
  28. printf("Enter value to insert: ");
  29. scanf("%d", &val);
  30. while (val != -1) {
  31. tree = insert(tree, val);
  32. printf("Enter value to be inserted: ");
  33. scanf("%d", &val);
  34. }
  35. R tree;
  36. }
  37.  
  38. void inOrder(struct node* tree)
  39. {
  40. if (tree == NULL) {
  41. R;
  42. } else {
  43. inOrder(tree->left);
  44. printf("%d\n", tree->data);
  45. inOrder(tree->right);
  46. }
  47. }
  48.  
  49. void preOrder(struct node* tree)
  50. {
  51. if (tree == NULL) {
  52. R;
  53. } else {
  54. printf("%d\n", tree->data);
  55. preOrder(tree->left);
  56. preOrder(tree->right);
  57. }
  58. }
  59.  
  60. void postOrder(struct node* tree)
  61. {
  62. if (tree == NULL) {
  63. R;
  64. } else {
  65. postOrder(tree->left);
  66. postOrder(tree->right);
  67. printf("%d\n", tree->data);
  68. }
  69. }
  70.  
  71. int main() {
  72. struct node* tree;
  73. tree = create(tree);
  74. inOrder(tree);
  75. printf("\n");
  76. preOrder(tree);
  77. printf("\n");
  78. postOrder(tree);
  79. R 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement