Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PTree find(PTree t, int key)
- {
- if (!t)
- return NULL;
- if (t -> key == key)
- return t;
- if (key < t -> key)
- return find(t -> l, key);
- else
- return find(t -> r, key);
- }
- PTree merge(PTree l, PTree r)
- {
- if (!l || !r)
- {
- return l ? l : r;
- }
- if (l -> prior > r -> prior)
- return merge(l -> r, r);
- else
- return merge(l, r -> l);
- }
- void erase(PTree &t, int key)
- {
- PTree tmp = find(t, key);
- PTree k = merge(tmp -> l, tmp -> r);
- *&tmp = k;
- }
Advertisement
Add Comment
Please, Sign In to add comment