fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. struct node
  7. {
  8. public:
  9. int value;
  10. node * left;
  11. node * right;
  12. };
  13.  
  14.  
  15. class bTree
  16. {
  17. public:
  18. node * root;
  19.  
  20. public:
  21. bTree();
  22. void insert(node *& r, int val);
  23. void insert(int val);
  24. void traversePreorder();
  25. void traversePreorder(node * r);
  26.  
  27.  
  28. };
  29.  
  30. bTree::bTree()
  31. {
  32. root = NULL;
  33. }
  34.  
  35. void bTree::insert(node *& r, int val)
  36. {
  37. if (r == NULL)
  38. {
  39. r = new node();
  40. r->value = val;
  41. r->left = NULL;
  42. r->right = NULL;
  43. return;
  44. }
  45. else
  46. {
  47. if (val <= r->value)
  48. {
  49. insert(r->left, val);
  50. }
  51. else
  52. {
  53. insert(r->right, val);
  54. }
  55. }
  56. }
  57.  
  58. void bTree::insert(int val)
  59. {
  60. insert(root, val);
  61. }
  62.  
  63. void bTree::traversePreorder(node * r)
  64. {
  65. if (r == nullptr)
  66. {
  67. return;
  68. }
  69. else
  70. {
  71. cout << r->value << " ";
  72. traversePreorder(r->left);
  73. traversePreorder(r->right);
  74. }
  75. }
  76.  
  77. void bTree::traversePreorder()
  78. {
  79. traversePreorder(root);
  80. }
  81.  
  82. int main()
  83. {
  84. bTree * myTree = new bTree();
  85.  
  86. myTree->insert(30);
  87.  
  88. myTree->insert(40);
  89. myTree->insert(20);
  90. myTree->insert(10);
  91. myTree->insert(50);
  92.  
  93.  
  94. myTree->traversePreorder();
  95.  
  96. return 0;
  97. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
30 20 10 40 50