How to implement a simple binary tree in C++

1 Answer

0 votes
#include <iostream>

struct Node {
    int data;
    Node* left;
    Node* right;

    Node(int value) {
        data = value;
        left = right = nullptr;
    }
};

class BinaryTree {
public:
    Node* root;

    BinaryTree() {
        root = nullptr;
    }

    void Insert(int value) {
        root = insertValue(root, value);
    }

    void Print() {
        printNodes(root);
    }

private:
    Node* insertValue(Node* node, int value) {
        if (node == nullptr) {
            return new Node(value);
        }

        if (value < node->data) {
            node->left = insertValue(node->left, value);
        } else if (value > node->data) {
            node->right = insertValue(node->right, value);
        }

        return node;
    }

    void printNodes(Node* node) {
        if (node != nullptr) {
            printNodes(node->left);
            std::cout << node->data << " ";
            printNodes(node->right);
        }
    }
};

int main() {
    
    BinaryTree btree;
    
    btree.Insert(70);
    btree.Insert(30);
    btree.Insert(20);
    btree.Insert(40);
    btree.Insert(60);
    btree.Insert(80);
    btree.Insert(90);
    btree.Insert(10);

    std::cout << "Tree values: ";
    
    btree.Print();
}

  
  
/*
run:
     
Tree values: 10 20 30 40 60 70 80 90 
              
*/

 



answered Dec 4, 2024 by avibootz

Related questions

1 answer 130 views
1 answer 167 views
1 answer 133 views
1 answer 123 views
123 views asked Jun 14, 2023 by avibootz
1 answer 162 views
1 answer 164 views
2 answers 237 views
...