Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Node{
- int bro;
- int left_son;
- int parent;
- int val;
- Node(int val, vector<Node*>& nodes, int parent=-1) {
- this->val = val;
- this->parent = parent;
- bro = -1;
- left_son = -1;
- nodes.push_back(this);
- if (parent != -1) {
- Node* p = nodes[parent];
- if (p->val >= val) {
- p->left_son = nodes.size() - 1;
- for (int i = parent + 1; i < nodes.size(); ++i)
- if (nodes[i]->parent == parent) {
- bro = i;
- break;
- }
- } else {
- for (int i = parent + 1; i < nodes.size(); ++i)
- if (nodes[i]->parent == parent) {
- nodes[i]->bro = nodes.size() - 1;
- break;
- }
- }
- }
- }
- }
- struct Tree{
- private:
- vector<Node*> nodes;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement