# 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) – Essay Answers | www.essayanswers.org

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)