fork(3) download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. /* A binary tree node has data, pointer to left child
  5.   and a pointer to right child */
  6. struct node
  7. {
  8. int data;
  9. struct node* left;
  10. struct node* right;
  11. };
  12.  
  13. struct node* newNode(int data)
  14.  
  15. {
  16. struct node* node = (struct node*) malloc(sizeof(struct node));
  17. node->data = data;
  18. node->left = NULL;
  19. node->right = NULL;
  20.  
  21. return(node);
  22. }
  23.  
  24.  
  25.  
  26. void mirror(struct node* node)
  27. {
  28. if (node==NULL)
  29. return;
  30. else
  31. {
  32.  
  33. struct node* temp;
  34. mirror(node->left);
  35. mirror(node->right);
  36.  
  37. temp = node->left;
  38. node->left = node->right;
  39. node->right = temp;
  40.  
  41. }
  42. }
  43.  
  44.  
  45. void inOrder(struct node* node)
  46. {
  47. if (node == NULL)
  48. return;
  49.  
  50. printf("%d ", node->data);
  51. inOrder(node->left);
  52. inOrder(node->right);
  53. }
  54.  
  55.  
  56. /* Driver program to test mirror() */
  57. int main()
  58. {
  59. struct node *root = newNode(1);
  60. root->left = newNode(2);
  61. root->right = newNode(3);
  62. root->left->left = newNode(4);
  63. root->left->right = newNode(5);
  64.  
  65. printf("\n Inorder traversal of the constructed tree is \n");
  66. inOrder(root);
  67. mirror(root);
  68. printf("\n Inorder traversal of the mirror tree is \n");
  69. inOrder(root);
  70.  
  71. return 0;
  72. }
  73.  
Success #stdin #stdout 0s 9424KB
stdin
Standard input is empty
stdout
 Inorder traversal of the constructed tree is 
1 2 4 5 3 
 Inorder traversal of the mirror tree is 
1 3 2 5 4