fork download
  1. // Based on http://stackoverflow.com/q/39722007/243245
  2.  
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. struct Tnode {
  7. Tnode *left;
  8. Tnode *right;
  9. int content;
  10.  
  11. Tnode (int item = 0) {
  12. this->content = item;
  13. left = nullptr;
  14. right = nullptr;
  15. }};
  16.  
  17.  
  18. class KrTree {
  19. private:
  20. Tnode* root;
  21.  
  22. void printHelper (Tnode* root) {
  23. if(!root) {
  24. return;
  25. }
  26. printHelper(root->left);
  27. cout << root->content << " ";
  28. printHelper(root->right);
  29. }
  30.  
  31. void addHelper (Tnode *root, int item) {
  32. if (root->content < item) {
  33. if (root->right) {
  34. addHelper(root->right, item);
  35. } else {
  36. root->right = new Tnode (item);
  37. }
  38.  
  39. }else {
  40. if (root->left) {
  41. addHelper(root->left, item);
  42. } else {
  43. root->left = new Tnode (item);
  44. }
  45. }
  46. }
  47.  
  48. public:
  49. KrTree (){
  50. }
  51.  
  52. void addTreeNode (int item) {
  53. if (root){
  54. this->addHelper(root, item);
  55. } else {
  56. root = new Tnode(item);
  57. }
  58. }
  59.  
  60. void tnodes_count () {
  61.  
  62. }
  63.  
  64. void deleteTreeNode () {
  65.  
  66. }
  67.  
  68. void printTree () {
  69. printHelper (this->root);
  70. }
  71.  
  72. ~KrTree (){}
  73.  
  74. };
  75.  
  76. int main() {
  77. KrTree* tree = new KrTree();
  78. tree->printTree();
  79. tree->addTreeNode(7);
  80. tree->addTreeNode(2);
  81. tree->addTreeNode(10);
  82. tree->addTreeNode(1);
  83. tree->addTreeNode(5);
  84. tree->addTreeNode(9);
  85. tree->addTreeNode(20);
  86.  
  87. tree->printTree();
  88.  
  89. return 0;
  90. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
1 2 5 7 9 10 20