Advertisement
Guest User

Lapin

a guest
Apr 14th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.54 KB | None | 0 0
  1.     def insert(key: T) = {
  2.         @tailrec
  3.         def recInsert(tree: SplayTree[T], k: (Node[T]) => Node[T]): Node[T] = {
  4.             tree match {
  5.                 case Node(l, v, r) if key < v => recInsert(l, (tree) => k(Node(tree, v, r)))
  6.                 case Node(l, v, r) if key > v => recInsert(r, (tree) => k(Node(l, v, tree)))
  7.                 case tree: Node[T]            => k(tree)
  8.                 case tree: Leaf[T]            => k(tree.insert(key))
  9.             }
  10.         }
  11.         recInsert(this, (tree) => tree).splay(key)
  12.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement