fork download
  1. #include <iostream>
  2. using namespace std;
  3. struct node
  4. {
  5. int data;
  6. node* left;
  7. node* right;
  8. };
  9. node* CreateNode (int data)
  10. {
  11. node* p = new node;
  12. if (p == NULL)
  13. {
  14. cout<<"Khong du bo nho!"<<endl;
  15. return NULL;
  16. }
  17. p->data = data;
  18. p->left = NULL;
  19. p->right = NULL;
  20. return p;
  21. }
  22. void PreOrder (node* root)
  23. {
  24. if (root != NULL)
  25. {
  26. cout<<root->data<<" ";
  27. PreOrder(root->left);
  28. PreOrder(root->right);
  29. }
  30. }
  31. void InOrder(node *root)
  32. {
  33. if (root != NULL)
  34. {
  35. InOrder(root->left);
  36. cout<<root->data<<" ";
  37. InOrder(root->right);
  38. }
  39. }
  40. void PostOrder(node *root)
  41. {
  42. if (root != NULL)
  43. {
  44. PostOrder(root->left);
  45. PostOrder(root->right);
  46. cout<<root->data<<" ";
  47. }
  48. }
  49. int main ()
  50. {
  51. node* root, * p1, * p2, * p3, * p4, * p5;
  52. root = CreateNode(7);
  53. p1 = CreateNode(5);
  54. p2 = CreateNode(10);
  55. p3 = CreateNode(9);
  56. p4 = CreateNode(2);
  57. p5 = CreateNode(3);
  58.  
  59. root->left = p1;
  60. root->right = p2;
  61. p1->left = p3;
  62. p1->right = NULL;
  63. p2->left = p4;
  64. p2->right = p5;
  65. p3->left = NULL;
  66. p3->right = NULL;
  67. p4->left = NULL;
  68. p4->right = NULL;
  69. p5->left = NULL;
  70. p5->right = NULL;
  71.  
  72. PreOrder(root);
  73. cout<<endl;
  74. InOrder(root);
  75. cout<<endl;
  76. PostOrder(root);
  77. return 0;
  78. }
Success #stdin #stdout 0.01s 5380KB
stdin
Standard input is empty
stdout
7  5  9  10  2  3  
9  5  7  2  10  3  
9  5  2  3  10  7