fork download
  1. #include<stdio.h>
  2. #include<malloc.h>
  3.  
  4. struct node
  5. {
  6. int data;
  7. struct node* left;
  8. struct node* right;
  9. struct node* next;
  10. };
  11.  
  12. typedef struct node Node;
  13.  
  14. void AddNode(Node* root, int number)
  15. {
  16. if(root->data==number)
  17. return;
  18. else if(root->data>number)
  19. {
  20. if(root->left!=NULL)
  21. {
  22. AddNode(root->left,number);
  23. }
  24. else
  25. {
  26. Node* newNode = (Node*)malloc(sizeof(Node));
  27. newNode->data = number;
  28. newNode->left = NULL;
  29. newNode->right= NULL;
  30. newNode->next= NULL;
  31. root->left = newNode;
  32. }
  33. }
  34. else if(root->data<number)
  35. {
  36. if(root->right!=NULL)
  37. {
  38. AddNode(root->right,number);
  39. }
  40. else
  41. {
  42. Node* newNode = (Node*)malloc(sizeof(Node));
  43. newNode->data = number;
  44. newNode->left = NULL;
  45. newNode->right= NULL;
  46. newNode->next= NULL;
  47. root->right= newNode;
  48. }
  49. }
  50. }
  51.  
  52. int IsMirror(Node* left,Node* right)
  53. {
  54. if(left==NULL&&right==NULL)
  55. return 1;
  56. if(left==NULL||right==NULL)
  57. return 0;
  58. return(IsMirror(left->right,right->left)&&IsMirror(left->left,right->right));
  59. }
  60.  
  61. int IsFoldable(Node* root)
  62. {
  63. if(root==NULL)
  64. return 1;
  65. else
  66. return IsMirror(root->left,root->right);
  67. }
  68.  
  69.  
  70. int main()
  71. {
  72. Node* root = (Node*)malloc(sizeof(Node));
  73. root->data = 3;
  74. root->left = NULL;
  75. root->right= NULL;
  76. root->next= NULL;
  77.  
  78. AddNode(root,2);
  79. AddNode(root,1);
  80. AddNode(root,5);
  81. AddNode(root,6);
  82. //AddNode(root,6);
  83. //AddNode(root,9);
  84. //AddNode(root,17);
  85. //AddNode(root,11);
  86. //AddNode(root,10);
  87. //AddNode(root,3);
  88. //AddNode(root,4);
  89.  
  90.  
  91. printf("%d",IsFoldable(root));
  92.  
  93. return 0;
  94. }
Success #stdin #stdout 0.02s 1852KB
stdin
Standard input is empty
stdout
1