| 429 | |
| 430 | template <typename K, typename V> |
| 431 | typename SplayTree<K, V>::node *SplayTree<K, V>::find_(const K &key) |
| 432 | { |
| 433 | node *p = root_.get(); |
| 434 | while (p) |
| 435 | { |
| 436 | if (key < p->first) |
| 437 | p = p->left.get(); |
| 438 | else if (key > p->first) |
| 439 | p = p->right.get(); |
| 440 | else |
| 441 | { |
| 442 | splay(p); |
| 443 | return root_.get(); |
| 444 | } |
| 445 | } |
| 446 | return nullptr; |
| 447 | } |
| 448 | |
| 449 | template <typename K, typename V> |
| 450 | void SplayTree<K, V>::remove(node *n) |