fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Node {
  6. int data;
  7. Node *left;
  8. Node *right;
  9. Node(int data) {
  10. this->data = data;
  11. left = NULL;
  12. right = NULL;
  13. }
  14. ~Node() {
  15. delete left;
  16. delete right;
  17. }
  18. };
  19.  
  20. class BinaryTree {
  21. public:
  22. BinaryTree() { root = NULL; }
  23. ~BinaryTree();
  24. bool insert(int inserted);
  25. Node* get_root() const { return root; }
  26. private:
  27. Node* root;
  28.  
  29. };
  30.  
  31. BinaryTree::~BinaryTree() {
  32. delete root;
  33. }
  34.  
  35. bool BinaryTree::insert(int inserted) {
  36.  
  37. if(!root) {
  38. root = new Node(inserted);
  39. return true;
  40. }
  41. else {
  42. Node *temp = root;
  43.  
  44. while(temp) {
  45. if(inserted > temp->data) {
  46. if(temp->right)
  47. temp = temp->right;
  48. else {
  49. temp->right = new Node(inserted);
  50. return true;
  51. }
  52. } else if(inserted < temp->data) {
  53. if(temp->left)
  54. temp = temp->left;
  55. else {
  56. temp->left = new Node(inserted);
  57. return true;
  58. }
  59. } else
  60. return false;
  61. }
  62. }
  63. return false;
  64. }
  65.  
  66. int main(){
  67.  
  68. BinaryTree tree;
  69. bool success = tree.insert(4);
  70. if(success) {
  71. cout << tree.get_root()->data << endl;
  72. }
  73. success = tree.insert(5); // Check the val
  74.  
  75. success = tree.insert(2); // Check the val
  76.  
  77. //etc.
  78.  
  79. //inorder( root );
  80.  
  81. return 0;
  82.  
  83. }
Success #stdin #stdout 0s 3420KB
stdin
Standard input is empty
stdout
4