Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum colour {RED, BLACK, DOUBLEBLACK};
- struct Node{
- int data;
- int colour;
- Node *left, *right, *parent;
- explicit Node(int);
- };
- class Tree{
- public:
- Tree();
- virtual ~Tree(){};
- void addValue(int);
- Node* insertNode(Node *, Node*);
- private:
- Node* root;
- };
- Node::Node(int data) {
- this->data = data;
- colour = RED;
- left = right = parent = nullptr;
- }
- Tree::Tree() {
- root = nullptr;
- }
- void Tree::addValue(int n) {
- Node *node = new Node(n);
- root = insertNode(root, node); //*********** this line here
- insertFix(node);
- }
- Node* Tree::insertNode(Node* root, Node* node) {
- if (root == nullptr)
- return node;
- if(node->data < root->data) {
- root->left = insertNode(root->left, node);
- root->left->parent = root;
- } else if (node->data > root->data) {
- root->right = insertNode(root->right, node);
- root->right->parent = root;
- }
- return root;
- }
Add Comment
Please, Sign In to add comment