Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Lode
- {
- int getRank()
- {
- rank = 1;
- if (left || right)
- {
- int rankL = 0, rankR = 0;
- if (left) rankL = left->getRank();
- if (right) rankR = right->getRank();
- if (rankL < rankR)
- rank = rankL + 1;
- else
- rank = rankR + 1;
- }
- return rank;
- }
- };
- struct Leap
- {
- Lode* merge(Lode* x, Lode* y)
- {
- if (!x) return y;
- if (!y) return x;
- if (x->data > y->data)
- swap(x,y);
- x->right = merge(x->right, y);
- x->getRank();
- int rankL = 0, rankR = 0;
- if (x->left) rankL = x->left->rank;
- if (x->right) rankR = x->right->rank;
- if (rankL < rankR)
- swap(x->left, x->right);
- return x;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement