Guest User

Untitled

a guest
Jan 21st, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. enum colour {RED, BLACK, DOUBLEBLACK};
  2.  
  3. struct Node{
  4. int data;
  5. int colour;
  6. Node *left, *right, *parent;
  7. explicit Node(int);
  8. };
  9.  
  10. class Tree{
  11.  
  12. public:
  13. Tree();
  14. virtual ~Tree(){};
  15. void addValue(int);
  16. Node* insertNode(Node *, Node*);
  17.  
  18. private:
  19. Node* root;
  20.  
  21. };
  22.  
  23. Node::Node(int data) {
  24. this->data = data;
  25. colour = RED;
  26. left = right = parent = nullptr;
  27. }
  28.  
  29. Tree::Tree() {
  30. root = nullptr;
  31. }
  32.  
  33. void Tree::addValue(int n) {
  34. Node *node = new Node(n);
  35. root = insertNode(root, node); //*********** this line here
  36. insertFix(node);
  37. }
  38.  
  39. Node* Tree::insertNode(Node* root, Node* node) {
  40. if (root == nullptr)
  41. return node;
  42.  
  43. if(node->data < root->data) {
  44. root->left = insertNode(root->left, node);
  45. root->left->parent = root;
  46. } else if (node->data > root->data) {
  47. root->right = insertNode(root->right, node);
  48. root->right->parent = root;
  49. }
  50. return root;
  51. }
Add Comment
Please, Sign In to add comment