split a bst in to 2 trees

First: Implement the class TreapADT including an search, insert, and delete methods.

Then split the tree by adding a SplitTree method.

✔ The tree splitting problem is this:

✗ Given a tree and a key value K not in the tree, create two trees: One with keys less than K, and one with keys greater than K

✔ This is easy to solve with a treap, once the insert operation has been implemented:

✗ Insert (K, INFINITY) in the treap

✗ Since this has a higher priority than any node in the heap, it will become the root of the treap after insertion

✗ Because of the BST ordering property, the left subtree of the root will be a treap with keys less than K, and the right subtree of the root will be a treap with keys greater than K. These subtrees then are the desired result of the split

✔ Since insert can be done in time O(H) where H is the height of the treap, splitting can also be done in time O(H)

"Is this question part of your assignment? We can help"

ORDER NOW