Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def insert(key: T) = {
- @tailrec
- def recInsert(tree: SplayTree[T], k: (Node[T]) => Node[T]): Node[T] = {
- tree match {
- case Node(l, v, r) if key < v => recInsert(l, (tree) => k(Node(tree, v, r)))
- case Node(l, v, r) if key > v => recInsert(r, (tree) => k(Node(l, v, tree)))
- case tree: Node[T] => k(tree)
- case tree: Leaf[T] => k(tree.insert(key))
- }
- }
- recInsert(this, (tree) => tree).splay(key)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement