|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Extended Treap with rank support for O(log n) indexed access. More...
#include <tpl_treapRk.H>
Classes | |
| class | Iterator |
| Iterator on nodes of the tree. More... | |
Public Types | |
| using | Node = NodeType< Key > |
Public Member Functions | |
| void | set_seed (const unsigned long seed) noexcept |
| Set the random number generator seed. | |
| Compare & | key_comp () noexcept |
| return the comparison criteria | |
| Compare & | get_compare () noexcept |
| Gen_Treap_Rk (const unsigned long seed, Compare __cmp=Compare()) | |
Initialize a treap with random seed and comparison criteria __cmp | |
| Gen_Treap_Rk (Compare __cmp=Compare()) | |
| ~Gen_Treap_Rk () | |
| void | swap (Gen_Treap_Rk &tree) noexcept |
Swap in constant time all the nodes of this with tree | |
| Node *& | getRoot () noexcept |
| Return the tree's root. | |
| Node * | getRoot () const noexcept |
| Node * | search (const Key &key) const noexcept |
| Search a key in a treap. | |
| Node * | insert (Node *p) noexcept |
| Insert a node in a treap. | |
| Node * | insert_dup (Node *p) noexcept |
| Insert a node in the tree. | |
| Node * | search_or_insert (Node *p) noexcept |
| Search or insert a key. | |
| bool | verify () const |
Return true if the treap is consistent. | |
| Node * | remove (const Key &key) noexcept |
| Remove a key from the tree. | |
| Node * | remove (const size_t beg, const size_t end) |
Remove from the treap all the keys between inorder position beg and end. | |
| Node * | remove_pos (const size_t pos) |
| Remove the node at the inorder position pos. | |
| Node * | select (const size_t i) const |
| Return the i-th node in order sense. | |
| size_t | size () const noexcept |
| Return the number of nodes contained in the tree. | |
| bool | is_empty () const noexcept |
Return true if tree is empty. | |
| std::pair< int, Node * > | position (const Key &key) const noexcept |
| Compute the inorder position of a key. | |
| std::pair< int, Node * > | find_position (const Key &key) const noexcept |
| Find the inorder position of a key in the tree. | |
| bool | split_key (const Key &key, Gen_Treap_Rk &t1, Gen_Treap_Rk &t2) noexcept |
| Split the tree according to a key. | |
| void | split_key_dup (const Key &key, Gen_Treap_Rk &t1, Gen_Treap_Rk &t2) noexcept |
| Split the tree according to a key that could be in the tree. | |
| void | split_pos (size_t pos, Gen_Treap_Rk &t1, Gen_Treap_Rk &t2) |
| Split the tree at the inorder position pos. | |
| void | join (Gen_Treap_Rk &t, Gen_Treap_Rk &dup) noexcept |
Join this with t filtering the duplicated keys. | |
| void | join_dup (Gen_Treap_Rk &t) noexcept |
Join this with t independently of the presence of duplicated keys. | |
| void | join_exclusive (Gen_Treap_Rk &t) noexcept |
Join exclusive of this with t | |
Private Member Functions | |
| void | init (unsigned int seed) |
| bool | insert (Node *&root, Node *p) noexcept |
| Node * | search_or_insert (Node *&root, Node *p) noexcept |
| Node * | insert_dup (Node *&root, Node *p) noexcept |
| Node * | remove (Node *&root, const Key &key) noexcept |
| void | join_dup (Node *&t1, Node *t2) noexcept |
| void | join (Node *&t1, Node *t2, Node *&dup) noexcept |
Static Private Member Functions | |
| static Node * | join_exclusive (Node *t1, Node *t2) noexcept |
| static Node * | remove_pos (Node *&root, const size_t pos) noexcept |
Private Attributes | |
| Node | head |
| The type of node. | |
| Node * | head_ptr |
| Node *& | tree_root |
| gsl_rng * | r |
| Compare | cmp |
Extended Treap with rank support for O(log n) indexed access.
TreapRk is a Treap (tree + heap) that extends the basic treap with subtree size counters (COUNT), enabling O(log n) access by rank (inorder position). This allows treating the tree like a sorted dynamic array with efficient indexed operations.
| NodeType | Node template (typically Treap_Rk_Node). |
| Key | The type of keys stored in the tree. |
| Compare | Comparison functor for ordering keys. |
Definition at line 180 of file tpl_treapRk.H.
| using Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Node = NodeType<Key> |
Definition at line 184 of file tpl_treapRk.H.
|
inline |
Initialize a treap with random seed and comparison criteria __cmp
Definition at line 217 of file tpl_treapRk.H.
References Aleph::init.
|
inline |
Definition at line 223 of file tpl_treapRk.H.
|
inline |
Definition at line 228 of file tpl_treapRk.H.
References Aleph::maps(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::r.
|
inlinenoexcept |
Find the inorder position of a key in the tree.
find_position(key) determines the inorder position that has or had key in the tree. Themethod return a tuple with a position and a node pointer.
If key is found then its inorder position is returned along with a pointer to the node containing it.
Otherwise, the the tuple returns the position that would have key if this was in the tree and the parent node that the key would had. At this regard, there are three cases:
key is lesser than the minimum key of tree, then first is -1 and the node is one with the smallest key.key is greater than the maximum key in the tree, then first is the number of keys and the node is one with the maximum key in the tree.key if this was in the tree and second is the node whose key is inmediataly greater than key.| [in] | key | to be searched |
Definition at line 614 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::cmp, Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::find_position(), Aleph::maps(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::r, and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::find_position(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::reset_to_key().
|
inlinenoexcept |
Definition at line 213 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::key_comp().
|
inlinenoexcept |
Definition at line 245 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlinenoexcept |
Return the tree's root.
Definition at line 243 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::get_current_position(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::has_curr(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::is_container_empty(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::reset_last(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::update_curr(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::update_pos(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::verify(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::verify().
|
inlineprivate |
Definition at line 194 of file tpl_treapRk.H.
References ah_bad_alloc_if, Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::head_ptr, Aleph::maps(), Aleph::Min_Priority, Aleph::PRIO(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::r.
|
inlineprivatenoexcept |
Definition at line 261 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::cmp, Aleph::COUNT(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert(), KEY, Aleph::LLINK(), Aleph::maps(), Aleph::PRIO(), Aleph::RLINK(), root(), Aleph::rotate_to_left_xt(), and Aleph::rotate_to_right_xt().
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join().
|
inlinenoexcept |
Insert a node in a treap.
insert(p) inserta el nodo p en el treap this.
| [in] | p | pointer to the node to be inserted |
p->get_key() is not in the tree, then p is inserted and this node pointer is returned. Otherwise, it is returned nullptr. Definition at line 379 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert(), Aleph::maps(), Aleph::PRIO(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::r, and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlineprivatenoexcept |
Definition at line 343 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::cmp, Aleph::COUNT(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert_dup(), KEY, Aleph::LLINK(), Aleph::maps(), Aleph::PRIO(), Aleph::RLINK(), root(), Aleph::rotate_to_left_xt(), and Aleph::rotate_to_right_xt().
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert_dup(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert_dup(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_dup().
|
inlinenoexcept |
Insert a node in the tree.
This method does not fail. It always inserts.
| [in] | p | pointer to the node to insert |
p pointer Definition at line 395 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert_dup(), Aleph::maps(), Aleph::PRIO(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::r, and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlinenoexcept |
Return true if tree is empty.
Definition at line 568 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlinenoexcept |
Join this with t filtering the duplicated keys.
join(t, dup) produces a random tree result of join of this and t. The resulting tree is stored in this.
Nodes containing duplicated keys are inserted in the randomized tree dup. The nodes could belong to any of two trees
| [in] | t | ramdomized tree to join with this |
| [out] | dup | ramdomized tree where nodes containing duplicated keys are inserted |
Definition at line 712 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlineprivatenoexcept |
Definition at line 678 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert_dup(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join(), KEY, l, Aleph::LLINK(), Aleph::maps(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::r, Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove(), Aleph::HTList::reset(), and Aleph::RLINK().
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join().
|
inlinenoexcept |
Join this with t independently of the presence of duplicated keys.
join(t) produces a treap result of join of this and t. The resulting tree is stored in this.
| [in] | t | ramdomized tree to join with this keys are inserted |
Definition at line 726 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_dup(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlineprivatenoexcept |
Definition at line 666 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert_dup(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_dup(), l, Aleph::LLINK(), Aleph::maps(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::r, Aleph::HTList::reset(), and Aleph::RLINK().
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_dup(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_dup().
|
inlinenoexcept |
Join exclusive of this with t
Exclusive means that all the keys of this are lesser than all the keys of t. This knowlege allows a more effcient way for joining that when the keys ranks are overlapped. However, use very carefully because the algorithm does not perform any check and the result would be incorrect.
| [in] | t | ramdomized tree to exclusively join with this keys are inserted |
Definition at line 743 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_exclusive(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlinestaticprivatenoexcept |
Definition at line 430 of file tpl_treapRk.H.
References Aleph::COUNT(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_exclusive(), Aleph::LLINK(), Aleph::maps(), Aleph::PRIO(), and Aleph::RLINK().
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_exclusive(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_exclusive(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove_pos().
|
inlinenoexcept |
return the comparison criteria
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 210 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::cmp.
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::get_compare().
|
inlinenoexcept |
Remove a key from the tree.
| [in] | key | to remove |
key was found in the tree, nullptr otherwise Definition at line 484 of file tpl_treapRk.H.
References Aleph::maps(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove(), Aleph::HTList::reset(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inline |
Remove from the treap all the keys between inorder position beg and end.
| [in] | beg | beggining inorder position |
| [in] | end | ending inorder position |
| range_error | if the range is invalid |
Definition at line 503 of file tpl_treapRk.H.
References ah_range_error_if, Aleph::COUNT(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_exclusive(), Aleph::maps(), Aleph::split_pos_rec(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlineprivatenoexcept |
Definition at line 449 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::cmp, Aleph::COUNT(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_exclusive(), KEY, Aleph::LLINK(), Aleph::maps(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove(), Aleph::RLINK(), and root().
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::del(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove().
|
inline |
Remove the node at the inorder position pos.
| [in] | pos | inorder position of node to be removed |
| out_of_range | if pos is greater or equal than the number of nodes of tree |
Definition at line 545 of file tpl_treapRk.H.
References ah_out_of_range_error_if, Aleph::COUNT(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove_pos(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlinestaticprivatenoexcept |
Definition at line 521 of file tpl_treapRk.H.
References Aleph::COUNT(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_exclusive(), Aleph::LLINK(), Aleph::maps(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove_pos(), Aleph::RLINK(), and root().
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove_pos(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove_pos().
|
inlinenoexcept |
Search a key in a treap.
| [in] | key | to be searched |
key if this is found; otherwise, nullptr is returned Definition at line 253 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::cmp, Aleph::maps(), Aleph::searchInBinTree(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlineprivatenoexcept |
Definition at line 299 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::cmp, Aleph::COUNT(), KEY, Aleph::LLINK(), Aleph::maps(), Aleph::PRIO(), Aleph::RLINK(), root(), Aleph::rotate_to_left_xt(), Aleph::rotate_to_right_xt(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::search_or_insert().
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::search_or_insert(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::search_or_insert().
|
inlinenoexcept |
Search or insert a key.
search_or_insert(p) searches in the tree the key KEY(p). If this key is found, then a pointer to the node containing it is returned. Otherwise, p is inserted.
| [in] | p | node containing a key to be searched and eventually inserted |
p is found, then a pointer to the containing key in the tree is returned. Otherwise, p is inserted and returned Definition at line 416 of file tpl_treapRk.H.
References Aleph::maps(), Aleph::PRIO(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::r, Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::search_or_insert(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inline |
Return the i-th node in order sense.
| [in] | i | inorder position of node to be selected |
| out_of_range | if pos is greater or equal than the number of nodes of tree |
Definition at line 559 of file tpl_treapRk.H.
References Aleph::select(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlinenoexcept |
Set the random number generator seed.
Definition at line 207 of file tpl_treapRk.H.
References Aleph::maps(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::r.
|
inlinenoexcept |
Return the number of nodes contained in the tree.
Definition at line 565 of file tpl_treapRk.H.
References Aleph::COUNT(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlinenoexcept |
Split the tree according to a key.
| [in] | key | for splitting |
| [out] | t1 | tree with keys lesser than key |
| [out] | t2 | tree with keys greater than key |
true if tree was split; that is if key is not in the tree. Otherwise, if key is in the tree, false is returned Definition at line 632 of file tpl_treapRk.H.
References Aleph::maps(), Aleph::split_key_rec_xt(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlinenoexcept |
Split the tree according to a key that could be in the tree.
split_dup(key, t1, t2) splits the tree according to key in two trees t1 which contains the key lesser than key and t2 which contains the keys greater or equal than key.
| [in] | key | for splitting |
| [out] | t1 | resulting tree with the keys lesser than key |
| [out] | t2 | resulting tree with the keys greater or equal than key |
Definition at line 648 of file tpl_treapRk.H.
References Aleph::maps(), Aleph::split_key_dup_rec_xt(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inline |
Split the tree at the inorder position pos.
| [in] | pos | inorder position where to split |
| [out] | t1 | tree where the rank of keys \([0, pos)\) will be put |
| [out] | t2 | tree where the rank of keys \([pos, n]\) will be put |
Definition at line 659 of file tpl_treapRk.H.
References Aleph::maps(), Aleph::split_pos_rec(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inlinenoexcept |
Swap in constant time all the nodes of this with tree
Definition at line 235 of file tpl_treapRk.H.
References Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::cmp, Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::r, and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
inline |
Return true if the treap is consistent.
Definition at line 426 of file tpl_treapRk.H.
References Aleph::is_treap(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::tree_root.
|
private |
Definition at line 192 of file tpl_treapRk.H.
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::find_position(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert_dup(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::key_comp(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::position(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::search(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::search_or_insert(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::swap(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::update_pos().
|
private |
The type of node.
Definition at line 188 of file tpl_treapRk.H.
|
private |
Definition at line 189 of file tpl_treapRk.H.
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::init().
|
private |
Definition at line 191 of file tpl_treapRk.H.
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::~Gen_Treap_Rk(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::find_position(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::init(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert_dup(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_dup(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::search_or_insert(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::set_seed(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::swap(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::Iterator::verify().
|
private |
Definition at line 190 of file tpl_treapRk.H.
Referenced by Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::find_position(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::getRoot(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::getRoot(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::insert_dup(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::is_empty(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_dup(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::join_exclusive(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::position(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::remove_pos(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::search(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::search_or_insert(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::select(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::size(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::split_key(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::split_key_dup(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::split_pos(), Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::swap(), and Aleph::Gen_Treap_Rk< NodeType, Key, Compare >::verify().