|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Dynamic set backed by balanced binary search trees with automatic memory management. More...
#include <tpl_dynSetTree.H>
Inherits LocateFunctions< Container, Type >, FunctionalMethods< Container, T >, GenericItems< Container, T >, EqualToMethod< Container >, and StlAlephIterator< SetName >.
Inherited by Aleph::DynMapTree< Key, Type, Avl_Tree, Aleph::less< Key > >, Aleph::DynMapTree< Key, Type, BinTree, Aleph::less< Key > >, Aleph::DynMapTree< Key, Type, Rand_Tree, Aleph::less< Key > >, Aleph::DynMapTree< Key, Type, Rb_Tree, Aleph::less< Key > >, Aleph::DynMapTree< Key, Type, Splay_Tree, Aleph::less< Key > >, Aleph::DynMapTree< Key, Type, Treap, Aleph::less< Key > >, Aleph::DynMapTree< Key, Type, Treap_Rk, Aleph::less< Key > >, Aleph::DynMapTree< Key, Operation >, Aleph::DynMapTree< Key, ValueType >, Aleph::DynMapTree< void *, Flow_Type >, Aleph::DynMapTree< Aleph::Array< size_t >, double, Aleph::Avl_Tree, Grevlex_Order >, Aleph::DynMapTree< size_t, double >, Aleph::DynMapTree< Node *, Node *, Treap >, Aleph::DynMapTree< std::string, Huffman_Node *, Treap_Vtl >, Aleph::DynMapTree< std::string, BitArray, Treap_Vtl >, Aleph::DynMapTree< Node *, Node * >, Aleph::DynMapTree< Arc *, Arc * >, Aleph::DynMapTree< Node *, Distance_Type >, Aleph::DynMapTree< Node *, size_t >, Aleph::DynMapTree< Arc *, size_t >, Aleph::DynMapTree< Pair_Key, Arc * >, Aleph::DynMapTree< Node *, Cost_Type >, Aleph::DynMapTree< Node *, Arc * >, Aleph::DynMapTree< Event::EventId, TimeoutQueue::Event * >, Aleph::DynSetAvlTree< std::pair< int, int > >, Aleph::DynSetAvlTree< Relation_T::Pair, Relation_T::Cmp >, Aleph::DynSetRandTree< GT_Node * >, Aleph::Arcs_Index< GT, Compare, Tree, SA >, Aleph::DynMapTree< Key, Data, Tree, Compare >, Aleph::DynSetAvlRkTree< Key, Compare >, Aleph::DynSetAvlTree< Key, Compare >, Aleph::DynSetBinTree< Key, Compare >, Aleph::DynSetHtdRbRkTree< Key, Compare >, Aleph::DynSetHtdRbTree< Key, Compare >, Aleph::DynSetRandTree< Key, Compare >, Aleph::DynSetRbRkTree< Key, Compare >, Aleph::DynSetRbTree< Key, Compare >, Aleph::DynSetSplayRkTree< Key, Compare >, Aleph::DynSetSplayTree< Key, Compare >, Aleph::DynSetTdRbRkTree< Key, Compare >, Aleph::DynSetTdRbTree< Key, Compare >, Aleph::DynSetTreap< Key, Compare >, Aleph::DynSetTreapRk< Key, Compare >, and Aleph::Nodes_Index< GT, Compare, Tree, SN >.
Classes | |
| struct | Has_Range_Methods |
| struct | Iterator |
| struct | Node_Op |
Public Types | |
| using | Node = typename Tree< Key, Compare >::Node |
| Type of binary node used by the binary search tree internal. | |
| using | Tree_Type = Tree< Key, Compare > |
| typedef DynSetTree | Set_Type |
| typedef Key | Item_Type |
| typedef Key | Key_Type |
Public Types inherited from StlAlephIterator< SetName > | |
| using | iterator = StlIterator< SetName > |
| using | const_iterator = StlConstIterator< SetName > |
Public Member Functions | |
| void | swap (DynSetTree &dset) noexcept(noexcept(tree.swap(dset.tree)) and noexcept(std::swap(num_nodes, dset.num_nodes)) and noexcept(std::swap(arena_allocator, dset.arena_allocator))) |
| Exchange all elements of this set with dset in constant time (and extremely fast). | |
| DynSetTree (const Compare &cmp=Compare()) | |
| Instantiate a dynamic set. | |
| DynSetTree (const char *base_addr, const size_t &sz, const Compare &cmp=Compare()) | |
| Instantiate a dynamic set using an arena allocator with external buffer. | |
| DynSetTree (const size_t &arena_sz, const Compare &cmp=Compare()) | |
| Instantiate a dynamic set using an arena allocator with dynamic buffer. | |
| DynSetTree (const DynSetTree &srcTree) | |
| instantiates a dynamic copy of srcTree | |
| template<template< typename > class List> | |
| DynSetTree (const List< Key > &l) | |
| template<class It > | |
| DynSetTree (It b, It e) | |
| DynSetTree (std::initializer_list< Key > l) | |
| DynSetTree (DynSetTree &&srcTree) noexcept | |
| void | empty () |
| remove all elements from the set | |
| void | clear () |
| Empties the container. | |
| DynSetTree & | operator= (const DynList< Key > &list) |
| DynSetTree & | operator= (const DynSetTree &srcTree) |
| assigns this to the dynamic array srctree | |
| DynSetTree & | operator= (DynSetTree &&srcTree) noexcept |
| Assigns the dynamic set srcTree to this. | |
| virtual | ~DynSetTree () |
| Destroyer; all elements are released. | |
| Key * | insert (const Key &key) |
| Inserts a key into the dynamic set. | |
| Key * | insert (Key &&key) |
| Key * | append (const Key &key) |
| Key * | append (Key &&key) |
| Key * | search_or_insert (const Key &key) |
| Look for the key in the binary search tree or inserts it if it is not found. | |
| Key * | search_or_insert (Key &&key) |
| std::pair< Key *, bool > | contains_or_insert (const Key &key) |
| std::pair< Key *, bool > | contains_or_insert (Key &&key) |
| Key * | insert_dup (const Key &key) |
| Key * | insert_dup (Key &&key) |
| Key * | put (const Key &key) |
| Key * | put (Key &&key) |
| size_t | remove (const Key &key) |
| Removes a key from the dynamic set. | |
| Key | del (const Key &key) |
Deletes key and returns a full copy of stored key. | |
| Key | remove_pos (const size_t i) |
| Removes a key from the dynamic set. | |
| bool | exist (const Key &key) const |
| Returns true if key belongs to the dynamic set. | |
| bool | has (const Key &key) const |
| bool | contains (const Key &key) const |
| Checks if a key exists in the set. | |
| Key & | find (const Key &key) const |
| Returns a modifiable reference to an element within the set. | |
| std::pair< long, Key * > | find_position (const Key &key) const |
| Returns the infix (ordinate) position of the key key or whatever It would be your position of belonging to the tree. | |
| Key * | search (const Key &key) const |
| Find an element in the set. | |
| const Key & | min () const |
| Returns the smallest key contained in the set according to the criterion comparison given. | |
| const Key & | get_first () const |
| const Key & | max () const |
| Returns the largest key contained in the set according to the criteria comparison given. | |
| const Key & | get_last () const |
| const Key & | get () const |
| Synonym of max. | |
| const size_t & | size () const |
| Returns the cardinality of the set. | |
| bool | is_empty () const |
| returns true if the set is empty | |
| bool | uses_arena () const noexcept |
| Returns true if the set is using an arena allocator. | |
| size_t | arena_allocated_size () const noexcept |
| Returns the allocated size from the arena (0 if not using arena) | |
| size_t | arena_available_size () const noexcept |
| Returns the available size in the arena (0 if not using arena) | |
| size_t | internal_path_length () const |
| Calculates and returns the length of the internal path of the tree search binary. | |
| Node * | get_root_node () const |
| const Key & | get_root () const |
| const Key & | get_item () const |
| Returns any element of the set. | |
| size_t | height () const |
| Calculates and returns the height of the binary search tree. | |
| template<class Op > | |
| void | for_each_in_preorder (void(*visitFct)(Node *, int, int)) |
Performs a prefix traversal over all nodes in the tree and invokes the visitFct operation on each visit. | |
| long | position (const Key &key) const |
| Returns the infix (ordered) position of the key. | |
| Key & | select (size_t i) |
| Returns the ith node in infix position. | |
| const Key & | select (size_t i) const |
| Key & | operator() (size_t i) |
| const Key & | operator[] (const Key &key) const |
| const Key & | operator[] (const Key &key) |
| Key & | access (size_t i) |
| bool | verify () const |
| template<class Key_Op > | |
| void | for_each_preorder (Key_Op &key_op) const |
| Performs a prefix traversal over all keys in the set and invokes operation Op. | |
| template<class Key_Op > | |
| void | for_each_preorder (Key_Op &&key_op=Key_Op()) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Performs a preorder traversal over all keys using a temporary operation object. | |
| template<class Key_Op > | |
| void | for_each_inorder (Key_Op &key_op) const |
| Performs an infix traversal over all keys in the set and invokes operation Op. | |
| template<class Key_Op > | |
| void | for_each_inorder (Key_Op &&key_op=Key_Op()) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Performs an infix traversal over all keys using a temporary operation object. | |
| template<class Key_Op > | |
| void | for_each_postorder (Key_Op &key_op) const |
| Performs a postfix traversal over all keys in the set and invokes operation Op. | |
| template<class Key_Op > | |
| void | for_each_postorder (Key_Op &&key_op=Key_Op()) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Performs a postorder traversal over all keys using a temporary operation object. | |
| DynSetTree & | join (DynSetTree &t, DynSetTree &dup) |
| Union of two binary search trees. | |
| DynSetTree & | join (DynSetTree &t, DynSetTree &&dup=DynSetTree()) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Union of two binary search trees using a move-constructed duplicate tree. | |
| DynSetTree & | join_dup (DynSetTree &t) |
| Union of two binary search trees. | |
| bool | split_key (const Key &key, DynSetTree &l, DynSetTree &r) |
| Partitions the binary search tree based on a key. | |
| void | split_pos (const size_t pos, DynSetTree &l, DynSetTree &r) |
| Partitions the binary search tree based on an infix position. | |
| void | split_key_dup (const Key &key, DynSetTree &l, DynSetTree &r) |
| Partitions the binary search tree based on a key that may be present in the tree. | |
| template<class Operation > | |
| bool | traverse (Operation &op) |
| Traverse all the set of pairs and for each key executes the operation op. | |
| template<class Operation > | |
| bool | traverse (Operation &&op=Operation()) |
| template<class Operation > | |
| bool | traverse (Operation &op) const |
| template<class Operation > | |
| bool | traverse (Operation &&op=Operation()) const |
Public Member Functions inherited from LocateFunctions< Container, Type > | |
| auto | get_it () const |
| Return a properly initialized iterator positioned at the first item on the container. | |
| auto | get_it (const size_t pos) const |
Return a properly initialized iterator positioned at the pos item on the container. | |
| auto | get_itor () const |
Alias of get_it(). | |
| Type & | nth_ne (const size_t n) noexcept |
| Return the n‑th element without bounds checking. | |
| const Type & | nth_ne (const size_t n) const noexcept |
Const overload of nth_ne(size_t). | |
| Type & | nth (const size_t n) |
| Return the n-th item of the container. | |
| const Type & | nth (const size_t n) const |
Const overload of nth(size_t). | |
| template<class Operation > | |
| Type * | find_ptr (Operation &operation) noexcept(operation_is_noexcept< Operation >()) |
| Find a pointer to an item in the container according to a searching criterion. | |
| template<class Operation > | |
| const Type * | find_ptr (Operation &operation) const noexcept(operation_is_noexcept< Operation >()) |
Const overload of find_ptr(Operation&). | |
| template<class Operation > | |
| const Type * | find_ptr (Operation &&operation) const noexcept(operation_is_noexcept< Operation >()) |
| Overload of find_ptr() const that accepts rvalues. | |
| template<class Operation > | |
| Type * | find_ptr (Operation &&operation) noexcept(operation_is_noexcept< Operation >()) |
| Overload of find_ptr() that accepts rvalues. | |
| template<class Operation > | |
| size_t | find_index (Operation &operation) const noexcept(operation_is_noexcept< Operation >()) |
| Find the position of an item in the container according to a searching criterion. | |
| template<class Operation > | |
| size_t | find_index (Operation &&operation) const noexcept(operation_is_noexcept< Operation >()) |
| Overload of find_index() that accepts rvalues. | |
| template<class Operation > | |
| std::tuple< bool, Type > | find_item (Operation &operation) noexcept(operation_is_noexcept< Operation >()) |
| Safe sequential searching of an item matching a criterion. | |
| template<class Operation > | |
| std::tuple< bool, Type > | find_item (Operation &operation) const noexcept(operation_is_noexcept< Operation >()) |
| template<class Operation > | |
| std::tuple< bool, Type > | find_item (Operation &&operation) noexcept(operation_is_noexcept< Operation >()) |
| Overload of find_item() that accepts rvalues. | |
| template<class Operation > | |
| std::tuple< bool, Type > | find_item (Operation &&operation) const noexcept(operation_is_noexcept< Operation >()) |
| Overload of find_item() const that accepts rvalues. | |
| template<class Operation > | |
| bool | contains_if (Operation &&operation) const noexcept(operation_is_noexcept< Operation >()) |
| Test if an item satisfying a criterion is present in the container. | |
| bool | contains (const Type &item) const |
| Test if an item is present in the container using equality. | |
Public Member Functions inherited from FunctionalMethods< Container, T > | |
| template<typename ... Args> | |
| void | emplace (Args &&... args) |
| Appends a new element into the container by constructing it in-place with the given args. | |
| template<typename ... Args> | |
| void | emplace_end (Args &&... args) |
| template<typename ... Args> | |
| void | emplace_ins (Args &&... args) |
| Insert a new element into the container by constructing it in-place with the given args. | |
| template<typename ... Args> | |
| size_t | ninsert (Args ... args) |
| Insert n variadic items. | |
| template<typename ... Args> | |
| size_t | nappend (Args ... args) |
| Append n variadic items. | |
| template<class Operation > | |
| void | for_each (Operation &operation) |
| Traverse all the container and performs an operation on each element. | |
| template<class Operation > | |
| void | for_each (Operation &operation) const |
Const overload of for_each(Operation&). | |
| template<class Operation > | |
| void | for_each (Operation &&operation) const |
| Overload of for_each() const that accepts rvalues. | |
| template<class Operation > | |
| void | for_each (Operation &&operation) |
| Overload of for_each() that accepts rvalues. | |
| template<class Operation > | |
| void | each (Operation &operation) |
Alias of for_each(Operation&). | |
| template<class Operation > | |
| void | each (Operation &operation) const |
Const alias of for_each(Operation&). | |
| template<class Operation > | |
| void | each (Operation &&operation) const |
| Const alias of each() that accepts rvalues. | |
| template<class Operation > | |
| void | each (Operation &&operation) |
| Alias of each() that accepts rvalues. | |
| template<class Operation > | |
| void | each (size_t pos, const size_t slice, Operation &operation) const |
Traverse the container starting at pos taking one item every slice, performing a mutable operation on each visited element. | |
| template<class Operation > | |
| void | each (const size_t pos, const size_t slice, Operation &&operation) const |
| template<class Operation > | |
| void | mutable_for_each (Operation &operation) |
| Apply a mutable operation to each element of the container. | |
| template<class Operation > | |
| void | mutable_for_each (Operation &&operation) |
| template<class Operation > | |
| bool | all (Operation &operation) const |
| Check if all the elements of the container satisfy a condition. | |
| template<class Operation > | |
| bool | all (Operation &&operation) const |
| Overload of all() that accepts rvalues. | |
| template<class Operation > | |
| bool | exists (Operation &op) const |
| Test for existence in the container of an element satisfying a criterion. | |
| template<class Operation > | |
| bool | exists (Operation &&op) const |
| Overload of exists() that accepts rvalues. | |
| template<typename __T = T, class Operation = Aleph::Dft_Map_Op<T, __T>> | |
| Aleph::DynList< __T > | maps (Operation &op) const |
| Map the elements of the container. | |
| template<typename __T = T, class Operation = Aleph::Dft_Map_Op<__T, __T>> | |
| Aleph::DynList< __T > | maps (Operation &&op) const |
| Overload of maps() that accepts rvalues. | |
| template<typename __T = T, class Prop , class Operation > | |
| Aleph::DynList< __T > | maps_if (Prop prop, Operation &op) const |
| Conditional mapping of the elements of the container. | |
| template<typename __T = T, class Prop , class Operation > | |
| Aleph::DynList< __T > | maps_if (Prop prop, Operation &&op) const |
| Overload of maps_if() that accepts rvalues. | |
| Aleph::DynList< T > | to_dynlist () const |
| Convert container to DynList. | |
| std::vector< T > | to_vector () const |
| Convert container to std::vector. | |
| template<typename __T = T, class Op = Aleph::Dft_Fold_Op<__T, T>> | |
| __T | foldl (const __T &init, Op &op) const |
| Fold the elements of the container to a specific result. | |
| template<typename __T = T, class Op = Aleph::Dft_Fold_Op<__T, T>> | |
| __T | foldl (const __T &init, Op &&op=Op()) const |
| Overload of foldl() that accepts rvalues. | |
| template<typename __T = T, class Op = Aleph::Dft_Fold_Op<__T, T>> | |
| __T | fold_left (const __T &init, Op &op) const |
| Alias for foldl with the same accumulator type. | |
| template<typename __T = T, class Op = Aleph::Dft_Fold_Op<__T, T>> | |
| __T | fold_left (const __T &init, Op &&op=Op()) const |
| Overload of fold_left() that accepts rvalues. | |
| template<class Operation > | |
| T | fold (const T &init, Operation &operation) const |
| Simplified version of foldl() where the folded type is the same type of elements stored in the container. | |
| template<class Operation > | |
| T | fold (const T &init, Operation &&operation) const |
| Overload of fold() that accepts rvalues. | |
| template<class Operation > | |
| Aleph::DynList< T > | filter (Operation &operation) const |
| Filter the elements of a container according to a matching criterion. | |
| template<class Operation > | |
| Aleph::DynList< T > | filter (Operation &&operation) const |
| Overload of filter() that accepts rvalues. | |
| template<class Operation > | |
| Aleph::DynList< const T * > | ptr_filter (Operation &operation) const |
| Filter the elements of a container according to a matching criterion and return a pointer to the matched items in the container. | |
| template<class Operation > | |
| Aleph::DynList< const T * > | ptr_filter (Operation &&operation) const |
| Overload of ptr_filter() that accepts rvalues. | |
| template<class Operation > | |
| Aleph::DynList< std::tuple< T, size_t > > | pfilter (Operation &operation) const |
| Filter the elements of a container according to a matching criterion and determine its positions respect to the traversal of container. | |
| template<class Operation > | |
| Aleph::DynList< std::tuple< T, size_t > > | pfilter (Operation &&operation) const |
| Overload of pfilter() that accepts rvalues. | |
| template<class Operation > | |
| std::pair< Aleph::DynList< T >, Aleph::DynList< T > > | partition (Operation &op) const |
| Exclusive partition of container according to a filter criterion. | |
| template<class Operation > | |
| std::pair< Aleph::DynList< T >, Aleph::DynList< T > > | partition (Operation &&op) const |
| Overload of partition() that accepts rvalues. | |
| std::pair< Aleph::DynList< T >, Aleph::DynList< T > > | partition (size_t n) const |
| Exclusive partition of container in the nth item. | |
| std::pair< Aleph::DynList< T >, Aleph::DynList< T > > | split_half () const |
| Split the container into two halves by alternating elements. | |
| template<class Operation > | |
| std::tuple< Aleph::DynList< T >, Aleph::DynList< T > > | tpartition (Operation &op) const |
| Exclusive partition of container according to a filter criterion. | |
| template<class Operation > | |
| std::tuple< Aleph::DynList< T >, Aleph::DynList< T > > | tpartition (Operation &&op) const |
| Overload of tpartition() that accepts rvalues. | |
| size_t | length () const noexcept |
| Count the number of elements of a container. | |
| Aleph::DynList< T > | rev () const |
| Return a list with the elements of container in reverse order respect to its traversal order. | |
| Aleph::DynList< T > | take (const size_t n) const |
| Return a list with the first n elements seen in the container during its traversal. | |
| Aleph::DynList< T > | take (size_t i, const size_t j, const size_t step=1) const |
| Return a list with elements seen in the container between i and j position respect to its traversal. | |
| Aleph::DynList< T > | drop (const size_t n) const |
| Drop the first n elements seen in the container during its traversal. | |
| void | mutable_drop (const size_t n) |
| Drop the first n elements seen from container. | |
Public Member Functions inherited from GenericItems< Container, T > | |
| Aleph::DynList< T > | items () const |
| Return a list of all the elements of a container sorted by traversal order. | |
| Aleph::DynList< T > | keys () const |
Public Member Functions inherited from EqualToMethod< Container > | |
| bool | equal_to (const Container &r) const noexcept |
Test if elements of this are exactly contained in another container. | |
| bool | operator== (const Container &r) const noexcept |
| bool | operator!= (const Container &r) const noexcept |
| Negation of equal_to() | |
Public Member Functions inherited from StlAlephIterator< SetName > | |
| iterator | begin () noexcept |
| Return an STL-compatible iterator to the first element. | |
| iterator | end () noexcept |
| Return an STL-compatible end iterator. | |
| const_iterator | begin () const noexcept |
| Return a const iterator to the first element. | |
| const_iterator | end () const noexcept |
| Return a const end iterator. | |
| const_iterator | cbegin () const noexcept |
| Return a const iterator to the first element. | |
| const_iterator | cend () const noexcept |
| Return a const end iterator. | |
Private Member Functions | |
| Node * | alloc_node (const Key &key) |
| Node * | alloc_node (Key &&key) |
| void | free_node (Node *p) |
| Key * | __insert (Node *p) |
| Key * | __search_or_insert (Node *p) |
| std::pair< Node *, bool > | __contains_or_insert (Node *p) |
| Key * | __insert_dup (Node *q) |
Static Private Member Functions | |
| template<typename T > | |
| static auto | call_select (const T &t, const size_t i, int) -> decltype(t.select(i)) |
| template<typename T > | |
| static auto | call_select_nc (T &t, const size_t i, int) -> decltype(t.select(i)) |
| template<typename T > | |
| static Node * | call_select (const T &, const size_t,...) |
| template<typename T > | |
| static Node * | call_select_nc (T &, const size_t,...) |
| template<typename T > | |
| static auto | call_remove_pos (T &t, const size_t i, int) -> decltype(t.remove_pos(i)) |
| template<typename T > | |
| static Node * | call_remove_pos (T &, const size_t,...) |
| template<typename T > | |
| static auto | call_split_pos (T &t, const size_t pos, T &l, T &r, int) -> decltype(t.split_pos(pos, l, r), void()) |
| template<typename T > | |
| static void | call_split_pos (T &, const size_t, T &, T &,...) |
| template<typename T > | |
| static auto | call_position (const T &t, const Key &key, int) -> decltype(t.position(key)) |
| template<typename T > | |
| static std::pair< long, Node * > | call_position (const T &, const Key &,...) |
| template<typename T > | |
| static auto | call_find_position (const T &t, const Key &key, int) -> decltype(t.find_position(key)) |
| template<typename T > | |
| static std::pair< long, Node * > | call_find_position (const T &, const Key &,...) |
Private Attributes | |
| Tree< Key, Compare > | tree |
| size_t | num_nodes |
| std::unique_ptr< ArenaTreeAllocator< Node > > | arena_allocator |
Static Private Attributes | |
| static constexpr size_t | dim = 13 |
Additional Inherited Members | |
Related Symbols inherited from FunctionalMethods< Container, T > | |
| each | |
| each | |
| each | |
Dynamic set backed by balanced binary search trees with automatic memory management.
DynSetTree<Key, Tree, Compare> is a high-level dynamic set container that uses any of several balanced BST implementations (AVL, Red-Black, Treap, Splay, etc.) to maintain a sorted collection of unique keys.
Unlike the low-level tree classes (e.g., Avl_Tree, Rb_Tree), DynSetTree automatically manages node memory, provides rich functional operations (map, filter, fold), and offers an STL-compatible interface.
| Key | The type of keys stored in the set. |
| Tree | The underlying tree implementation template (default: Avl_Tree). Can be Avl_Tree, Rb_Tree, Treap, TreapRk, Splay_Tree, Rand_Tree. |
| Compare | Comparison functor for ordering keys (default: Aleph::less<Key>). |
Definition at line 270 of file tpl_dynSetTree.H.
| typedef Key Aleph::DynSetTree< Key, Tree, Compare >::Item_Type |
Definition at line 491 of file tpl_dynSetTree.H.
| typedef Key Aleph::DynSetTree< Key, Tree, Compare >::Key_Type |
Definition at line 493 of file tpl_dynSetTree.H.
| using Aleph::DynSetTree< Key, Tree, Compare >::Node = typename Tree<Key, Compare>::Node |
Type of binary node used by the binary search tree internal.
Definition at line 280 of file tpl_dynSetTree.H.
| typedef DynSetTree Aleph::DynSetTree< Key, Tree, Compare >::Set_Type |
Definition at line 489 of file tpl_dynSetTree.H.
| using Aleph::DynSetTree< Key, Tree, Compare >::Tree_Type = Tree<Key, Compare> |
Definition at line 282 of file tpl_dynSetTree.H.
|
inline |
Instantiate a dynamic set.
Definition at line 511 of file tpl_dynSetTree.H.
|
inline |
Instantiate a dynamic set using an arena allocator with external buffer.
Definition at line 518 of file tpl_dynSetTree.H.
|
inlineexplicit |
Instantiate a dynamic set using an arena allocator with dynamic buffer.
Definition at line 527 of file tpl_dynSetTree.H.
|
inline |
instantiates a dynamic copy of srcTree
Definition at line 536 of file tpl_dynSetTree.H.
References Aleph::copyRec(), Aleph::divide_and_conquer_partition_dp(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inline |
Definition at line 551 of file tpl_dynSetTree.H.
|
inline |
Definition at line 551 of file tpl_dynSetTree.H.
|
inline |
Definition at line 551 of file tpl_dynSetTree.H.
|
inlinenoexcept |
Definition at line 553 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp(), and Aleph::DynSetTree< Key, Tree, Compare >::swap().
|
inlinevirtual |
Destroyer; all elements are released.
Definition at line 620 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::empty().
|
inlineprivate |
Definition at line 714 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::free_node(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::contains_or_insert(), and Aleph::DynSetTree< Key, Tree, Compare >::contains_or_insert().
|
inlineprivate |
Definition at line 626 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::free_node(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::insert(), and Aleph::DynSetTree< Key, Tree, Compare >::insert().
|
inlineprivate |
Definition at line 785 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::free_node(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::insert_dup(), and Aleph::DynSetTree< Key, Tree, Compare >::insert_dup().
|
inlineprivate |
Definition at line 693 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::free_node(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::search_or_insert(), and Aleph::DynSetTree< Key, Tree, Compare >::search_or_insert().
|
inline |
Definition at line 1149 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::select().
Referenced by TEST().
|
inlineprivate |
Definition at line 466 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::arena_allocator.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::contains_or_insert(), Aleph::DynSetTree< Key, Tree, Compare >::contains_or_insert(), Aleph::DynSetTree< Key, Tree, Compare >::insert(), Aleph::DynSetTree< Key, Tree, Compare >::insert(), Aleph::DynSetTree< Key, Tree, Compare >::insert_dup(), Aleph::DynSetTree< Key, Tree, Compare >::insert_dup(), Aleph::DynSetTree< Key, Tree, Compare >::search_or_insert(), and Aleph::DynSetTree< Key, Tree, Compare >::search_or_insert().
|
inlineprivate |
Definition at line 473 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::arena_allocator.
|
inline |
Definition at line 682 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::insert().
Referenced by Aleph::hopcroft_karp_matching(), Aleph::List_SGraph< __Graph_Node, __Graph_Arc >::insert_arc(), Aleph::List_SGraph< __Graph_Node, __Graph_Arc >::insert_node(), main(), Aleph::List_SGraph< __Graph_Node, __Graph_Arc >::sort_arcs(), TYPED_TEST(), and TYPED_TEST().
|
inline |
Definition at line 687 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::insert().
|
inlinenoexcept |
Returns the allocated size from the arena (0 if not using arena)
Definition at line 1032 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::arena_allocator.
Referenced by TEST().
|
inlinenoexcept |
Returns the available size in the arena (0 if not using arena)
Definition at line 1040 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::arena_allocator.
Referenced by TEST().
|
inlinestaticprivate |
Definition at line 454 of file tpl_dynSetTree.H.
References ah_domain_error.
|
inlinestaticprivate |
Definition at line 447 of file tpl_dynSetTree.H.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::find_position().
|
inlinestaticprivate |
Definition at line 440 of file tpl_dynSetTree.H.
References ah_domain_error.
|
inlinestaticprivate |
Definition at line 433 of file tpl_dynSetTree.H.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::position().
|
inlinestaticprivate |
Definition at line 413 of file tpl_dynSetTree.H.
References ah_domain_error.
|
inlinestaticprivate |
Definition at line 406 of file tpl_dynSetTree.H.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::remove_pos().
|
inlinestaticprivate |
Definition at line 392 of file tpl_dynSetTree.H.
References ah_domain_error.
|
inlinestaticprivate |
Definition at line 377 of file tpl_dynSetTree.H.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::select().
|
inlinestaticprivate |
Definition at line 399 of file tpl_dynSetTree.H.
References ah_domain_error.
|
inlinestaticprivate |
Definition at line 385 of file tpl_dynSetTree.H.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::select().
|
inlinestaticprivate |
Definition at line 427 of file tpl_dynSetTree.H.
References ah_domain_error.
|
inlinestaticprivate |
Definition at line 420 of file tpl_dynSetTree.H.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::split_pos().
|
inline |
Empties the container.
| none |
Definition at line 584 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::empty().
|
inline |
Checks if a key exists in the set.
| [in] | key | key to search for. |
| none |
Definition at line 907 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::exist().
Referenced by Aleph::Net_Graph< NodeT, ArcT >::is_sink(), Aleph::Net_Graph< NodeT, ArcT >::is_source(), Aleph::min_cut(), Aleph::k_shortest_paths_detail::Filtered_Show_Arc< GT, SA >::operator()(), Aleph::k_shortest_paths_detail::shortest_path_filtered(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TYPED_TEST(), and TYPED_TEST().
|
inline |
Definition at line 772 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::__contains_or_insert(), and Aleph::DynSetTree< Key, Tree, Compare >::alloc_node().
Referenced by TYPED_TEST().
|
inline |
Definition at line 778 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::__contains_or_insert(), and Aleph::DynSetTree< Key, Tree, Compare >::alloc_node().
|
inline |
Deletes key and returns a full copy of stored key.
This method is intended to be used with compound keys, by example pairs, whose searching is done by a particular member of compound data.
| [in] | key | key to be removed |
| domain_error | if the key is not found in the set |
Definition at line 850 of file tpl_dynSetTree.H.
References ah_domain_error_if, Aleph::divide_and_conquer_partition_dp(), Aleph::DynSetTree< Key, Tree, Compare >::free_node(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynMapTree< Key, Data, Tree, Compare >::remove(), Aleph::DynMapTree< Key, Data, Tree, Compare >::remove(), and Aleph::DynMapTree< Key, Data, Tree, Compare >::remove_key().
|
inline |
remove all elements from the set
Definition at line 560 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::arena_allocator, Aleph::callKeyDestructorsRec(), Aleph::destroyRec(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::~DynSetTree(), Aleph::blossom_detail::Edmonds_Blossom_Matcher< GT, SA >::build_adjacency(), Aleph::Huffman_Encoder_Engine::build_encoding_map(), Aleph::MCF_Graph< NodeT, ArcT >::build_node_index(), Aleph::Johnson< GT, Distance, Ait, NAit, SA >::build_reverse_mappings(), Aleph::DynSetTree< Key, Tree, Compare >::clear(), Aleph::AHMapping< Key, ValueType >::clear(), Aleph::Huffman_Encoder_Engine::clear_build_state(), Aleph::Network_Simplex< Net >::init_structures(), Aleph::DynSetTree< Key, Tree, Compare >::operator=(), Aleph::DynSetTree< Key, Tree, Compare >::operator=(), reset_huffman_btreepic_state(), Aleph::List_SGraph< __Graph_Node, __Graph_Arc >::sort_arcs(), and test_DynSet().
|
inline |
Returns true if key belongs to the dynamic set.
Definition at line 891 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::search().
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::contains(), Aleph::DynSetTree< Key, Tree, Compare >::has(), and TYPED_TEST().
|
inline |
Returns a modifiable reference to an element within the set.
find(key) looks for the key key in the set and returns a modifiable reference to the value contained in the set.
| [in] | key | key to search for. |
| domain_error | if key is not within the set. |
Definition at line 926 of file tpl_dynSetTree.H.
References ah_domain_error_if, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynMapTree< Key, Data, Tree, Compare >::find(), Aleph::DynMapTree< Key, Data, Tree, Compare >::find(), Aleph::DynSetTree< Key, Tree, Compare >::operator[](), Aleph::Arcs_Index< GT, Compare, Tree, SA >::remove_from_graph(), Aleph::Nodes_Index< GT, Compare, Tree, SN >::remove_from_graph(), and Aleph::validate_nonplanar_certificate().
|
inline |
Returns the infix (ordinate) position of the key key or whatever It would be your position of belonging to the tree.
find_position(key) searches the extended tree for the key key (which takes time \(O(\lg n)\)) and returns the position infix of the node containing the key.
| [in] | key | key to search for and determine infix position. |
Definition at line 950 of file tpl_dynSetTree.H.
References ah_domain_error_if_constexpr, Aleph::DynSetTree< Key, Tree, Compare >::call_find_position(), Aleph::divide_and_conquer_partition_dp(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inline |
Performs a prefix traversal over all nodes in the tree and invokes the visitFct operation on each visit.
Definition at line 1072 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp(), Aleph::preOrderRec(), root(), and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Performs an infix traversal over all keys using a temporary operation object.
| Key_Op | Operation type (default-constructible). |
| [in] | key_op | Operation to execute on each key (default-constructed if not provided). |
Definition at line 1271 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp().
|
inline |
Performs an infix traversal over all keys in the set and invokes operation Op.
Op(p) has the following structure:
| [in] | key_op | operation to execute on each key |
Definition at line 1254 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp(), root(), and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Performs a postorder traversal over all keys using a temporary operation object.
| Key_Op | Operation type (default-constructible). |
| [in] | key_op | Operation to execute on each key (default-constructed if not provided). |
Definition at line 1318 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp().
|
inline |
Performs a postfix traversal over all keys in the set and invokes operation Op.
Op(p) has the following structure:
| [in] | key_op | operation to execute on each key |
Definition at line 1301 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp(), root(), and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Performs a preorder traversal over all keys using a temporary operation object.
| Key_Op | Operation type (default-constructible). |
| [in] | key_op | Operation to execute on each key (default-constructed if not provided). |
Definition at line 1224 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp().
|
inline |
Performs a prefix traversal over all keys in the set and invokes operation Op.
Op(p) has the following structure:
| [in] | key_op | operation to execute on each key |
Definition at line 1207 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp(), root(), and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inlineprivate |
Definition at line 480 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::arena_allocator.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::__contains_or_insert(), Aleph::DynSetTree< Key, Tree, Compare >::__insert(), Aleph::DynSetTree< Key, Tree, Compare >::__insert_dup(), Aleph::DynSetTree< Key, Tree, Compare >::__search_or_insert(), Aleph::DynSetTree< Key, Tree, Compare >::del(), Aleph::DynSetTree< Key, Tree, Compare >::insert(), Aleph::DynSetTree< Key, Tree, Compare >::insert(), Aleph::DynSetTree< Key, Tree, Compare >::remove(), and Aleph::DynSetTree< Key, Tree, Compare >::remove_pos().
|
inline |
Synonym of max.
Definition at line 1017 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::max().
Referenced by TEST(), and TYPED_TEST().
|
inline |
Definition at line 1001 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::min().
Referenced by Aleph::List_SGraph< __Graph_Node, __Graph_Arc >::get_first_arc(), Aleph::List_SGraph< __Graph_Node, __Graph_Arc >::get_first_node(), TEST(), and TYPED_TEST().
|
inline |
Returns any element of the set.
Definition at line 1064 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::get_root().
Referenced by Aleph::Net_Graph< NodeT, ArcT >::get_sink(), Aleph::Net_Graph< NodeT, ArcT >::get_source(), TEST(), TYPED_TEST(), Aleph::Net_Graph< NodeT, ArcT >::unmake_super_sink(), and Aleph::Net_Graph< NodeT, ArcT >::unmake_super_source().
|
inline |
Definition at line 1014 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::max().
Referenced by TEST(), and TYPED_TEST().
|
inline |
Definition at line 1056 of file tpl_dynSetTree.H.
References ah_domain_error_if, KEY, Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::get_item(), and TEST().
|
inline |
Definition at line 1054 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by demonstrate_tree_types(), and TYPED_TEST().
|
inline |
Definition at line 896 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::exist().
Referenced by insert_n_random_items_in_set(), TEST(), TEST(), TEST(), test_DynSet(), and TYPED_TEST().
|
inline |
Calculates and returns the height of the binary search tree.
Definition at line 1067 of file tpl_dynSetTree.H.
References Aleph::computeHeightRec(), and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by test(), and TYPED_TEST().
|
inline |
Inserts a key into the dynamic set.
Inserts the key into the dynamic set.
| [in] | key | key to insert. |
Definition at line 656 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::__insert(), Aleph::DynSetTree< Key, Tree, Compare >::alloc_node(), Aleph::divide_and_conquer_partition_dp(), and Aleph::DynSetTree< Key, Tree, Compare >::free_node().
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::append(), Aleph::DynMapTree< Key, Data, Tree, Compare >::append(), Aleph::DynMapTree< Key, Data, Tree, Compare >::append(), Aleph::DynSetTree< Key, Tree, Compare >::append(), Aleph::DynMapTree< Key, Data, Tree, Compare >::append(), Aleph::DynMapTree< Key, Data, Tree, Compare >::append(), Aleph::MonotonePolygonTriangulation::build_faces_from_diagonals(), count_distinct_colors(), Aleph::Random_Graph< GT, Init_Node, Init_Arc >::create_nodes_and_initialize_arc_index(), Aleph::Random_Digraph< GT, Init_Node, Init_Arc >::create_nodes_and_initialize_arc_index(), create_table(), Aleph::MonotonePolygonTriangulation::decompose_to_monotone_faces(), demonstrate_basic_operations(), demonstrate_functional_features(), demonstrate_ranked_operations(), demonstrate_tree_types(), Aleph::Net_Graph< NodeT, ArcT >::disconnect_arc(), Aleph::dsatur_coloring(), Aleph::greedy_coloring(), Aleph::Nodes_Index< GT, Compare, Tree, SN >::init(), Aleph::Arcs_Index< GT, Compare, Tree, SA >::init(), Aleph::DynMapTree< Key, Data, Tree, Compare >::insert(), Aleph::DynMapTree< Key, Data, Tree, Compare >::insert(), Aleph::DynMapTree< Key, Data, Tree, Compare >::insert(), Aleph::DynMapTree< Key, Data, Tree, Compare >::insert(), Aleph::Nodes_Index< GT, Compare, Tree, SN >::insert_in_graph(), Aleph::Nodes_Index< GT, Compare, Tree, SN >::insert_in_graph(), Aleph::Arcs_Index< GT, Compare, Tree, SA >::insert_in_graph(), insert_n_random_items_in_set(), main(), Aleph::min_cut(), Aleph::nonplanar_certificate_to_dot(), Aleph::nonplanar_certificate_to_gexf(), Aleph::nonplanar_certificate_to_graphml(), Aleph::Init_P< GT >::operator()(), Aleph::Lengauer_Tarjan_Post_Dominators< GT, SA >::post_dominance_frontiers(), Aleph::DynSetTree< Key, Tree, Compare >::put(), Aleph::DynSetTree< Key, Tree, Compare >::put(), Aleph::Net_Graph< NodeT, ArcT >::register_node(), Aleph::Net_Graph< NodeT, ArcT >::remove_arc(), Aleph::set_unify(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), test_DynSet(), Aleph::to_DynSetTree(), Aleph::GeomBowyerWatsonUtils::toggle_edge(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), Aleph::Random_Graph< GT, Init_Node, Init_Arc >::update_parity_after_arc_insertion(), Aleph::Random_Digraph< GT, Init_Node, Init_Arc >::update_parity_after_arc_insertion(), Aleph::vector_to_DynSetTree(), verify_bipartition(), Aleph::welsh_powell_coloring(), and Aleph::yen_k_shortest_paths().
|
inline |
Definition at line 801 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::__insert_dup(), and Aleph::DynSetTree< Key, Tree, Compare >::alloc_node().
Referenced by insert_dup_traversal_test(), and TYPED_TEST().
|
inline |
Definition at line 806 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::__insert_dup(), and Aleph::DynSetTree< Key, Tree, Compare >::alloc_node().
|
inline |
Calculates and returns the length of the internal path of the tree search binary.
Definition at line 1049 of file tpl_dynSetTree.H.
References Aleph::internal_path_length(), and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by test(), and TYPED_TEST().
|
inline |
returns true if the set is empty
Definition at line 1023 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::num_nodes.
Referenced by Aleph::Net_Graph< NodeT, ArcT >::check_network(), Aleph::Net_Graph< NodeT, ArcT >::flow_value(), AHDispatcher< Key, Operation >::is_empty(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TYPED_TEST(), and TYPED_TEST().
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Union of two binary search trees using a move-constructed duplicate tree.
| [in] | t | Binary search tree to join with this. |
| [in] | dup | Binary search tree with duplicate keys (move-constructed, default empty). |
Definition at line 1354 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::join().
|
inline |
Returns the largest key contained in the set according to the criteria comparison given.
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 1005 of file tpl_dynSetTree.H.
References ah_domain_error_if, Aleph::find_max(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::get(), Aleph::DynSetTree< Key, Tree, Compare >::get_last(), TEST(), TEST(), TEST(), TEST(), and TYPED_TEST().
|
inline |
Returns the smallest key contained in the set according to the criterion comparison given.
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 992 of file tpl_dynSetTree.H.
References ah_domain_error_if, Aleph::find_min(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::get_first(), TEST(), TEST(), TEST(), TEST(), and TYPED_TEST().
|
inline |
Definition at line 1134 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::select().
|
inline |
Definition at line 586 of file tpl_dynSetTree.H.
|
inline |
assigns this to the dynamic array srctree
Definition at line 592 of file tpl_dynSetTree.H.
References Aleph::copyRec(), Aleph::divide_and_conquer_partition_dp(), Aleph::DynSetTree< Key, Tree, Compare >::empty(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inlinenoexcept |
Assigns the dynamic set srcTree to this.
Definition at line 608 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp(), Aleph::DynSetTree< Key, Tree, Compare >::empty(), and Aleph::DynSetTree< Key, Tree, Compare >::swap().
|
inline |
Definition at line 1144 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::search_or_insert().
|
inline |
Definition at line 1139 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::find().
|
inline |
Returns the infix (ordered) position of the key.
position(key) searches the tree for the key (which takes time \(O(\lg n)\)) and returns the infix position of the node containing the key.
| [in] | key | key to search for and determine infix position. |
Definition at line 1090 of file tpl_dynSetTree.H.
References ah_domain_error_if_constexpr, Aleph::DynSetTree< Key, Tree, Compare >::call_position(), Aleph::divide_and_conquer_partition_dp(), and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inline |
Definition at line 811 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::insert().
Referenced by TYPED_TEST(), and TYPED_TEST().
|
inline |
Definition at line 816 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::insert().
|
inline |
Removes a key from the dynamic set.
remove(key) finds the key in the set and removes it.
| [in] | key | key to delete |
Definition at line 828 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::free_node(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::Net_Graph< NodeT, ArcT >::connect_arc(), Aleph::Net_Graph< NodeT, ArcT >::insert_arc(), Aleph::Net_Graph< NodeT, ArcT >::register_node(), Aleph::List_SGraph< __Graph_Node, __Graph_Arc >::remove_arc(), Aleph::Arcs_Index< GT, Compare, Tree, SA >::remove_from_graph(), Aleph::Nodes_Index< GT, Compare, Tree, SN >::remove_from_graph(), Aleph::List_SGraph< __Graph_Node, __Graph_Arc >::remove_node(), Aleph::Net_Graph< NodeT, ArcT >::remove_node(), TEST(), TEST(), TEST(), TEST(), TEST(), test_DynSet(), Aleph::GeomBowyerWatsonUtils::toggle_edge(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), Aleph::Random_Graph< GT, Init_Node, Init_Arc >::update_parity_after_arc_insertion(), and Aleph::Random_Digraph< GT, Init_Node, Init_Arc >::update_parity_after_arc_insertion().
|
inline |
Removes a key from the dynamic set.
Definition at line 870 of file tpl_dynSetTree.H.
References ah_domain_error_if_constexpr, ah_logic_error_if, ah_out_of_range_error_if, Aleph::DynSetTree< Key, Tree, Compare >::call_remove_pos(), Aleph::divide_and_conquer_partition_dp(), Aleph::DynSetTree< Key, Tree, Compare >::free_node(), KEY, Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inline |
Find an element in the set.
search(key) searches for the key key in the set. If he element is found in the set, then a pointer to the value contained in the set; otherwise nullptr is returned.
| [in] | key | key to search for. |
Definition at line 980 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::MonotonePolygonTriangulation::build_faces_from_diagonals(), demonstrate_tree_types(), Aleph::DynSetTree< Key, Tree, Compare >::exist(), Aleph::Init_P< GT >::operator()(), Aleph::DynMapTree< Key, Data, Tree, Compare >::search(), Aleph::Nodes_Index< GT, Compare, Tree, SN >::search(), Aleph::Arcs_Index< GT, Compare, Tree, SA >::search(), Aleph::DynMapTree< Key, Data, Tree, Compare >::search(), test_DynSet(), Aleph::GeomBowyerWatsonUtils::toggle_edge(), Aleph::Random_Digraph< GT, Init_Node, Init_Arc >::update_parity_after_arc_insertion(), and Aleph::Random_Digraph< GT, Init_Node, Init_Arc >::verify_tables().
|
inline |
Look for the key in the binary search tree or inserts it if it is not found.
search_or_insert(key) searches the binary tree for a node whose key is KEY(p). If the key is finds, then a pointer to it is returned; of what Otherwise key is inserted into the binary tree of search this.
| [in] | key | the key to search or insert. |
Definition at line 748 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::__search_or_insert(), and Aleph::DynSetTree< Key, Tree, Compare >::alloc_node().
Referenced by Aleph::DynMapTree< Key, Data, Tree, Compare >::operator[](), Aleph::DynSetTree< Key, Tree, Compare >::operator[](), Aleph::DynMapTree< Key, Data, Tree, Compare >::operator[](), Aleph::Nodes_Index< GT, Compare, Tree, SN >::search_or_insert_in_graph(), Aleph::Nodes_Index< GT, Compare, Tree, SN >::search_or_insert_in_graph(), TEST(), and TYPED_TEST().
|
inline |
Definition at line 753 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::__search_or_insert(), and Aleph::DynSetTree< Key, Tree, Compare >::alloc_node().
|
inline |
Returns the ith node in infix position.
| [in] | i | desired position |
Definition at line 1104 of file tpl_dynSetTree.H.
References ah_domain_error_if_constexpr, ah_logic_error_if, ah_out_of_range_error_if, Aleph::DynSetTree< Key, Tree, Compare >::call_select_nc(), Aleph::divide_and_conquer_partition_dp(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::access(), Aleph::Random_Graph< GT, Init_Node, Init_Arc >::make_eulerian(), Aleph::Random_Digraph< GT, Init_Node, Init_Arc >::make_eulerian(), Aleph::DynSetTree< Key, Tree, Compare >::operator()(), TEST(), TEST(), TEST(), and TEST().
|
inline |
Definition at line 1119 of file tpl_dynSetTree.H.
References ah_domain_error_if_constexpr, ah_logic_error_if, ah_out_of_range_error_if, Aleph::DynSetTree< Key, Tree, Compare >::call_select(), Aleph::divide_and_conquer_partition_dp(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inline |
Returns the cardinality of the set.
Definition at line 1020 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::num_nodes.
Referenced by adjust_nodes(), Aleph::Johnson< GT, Distance, Ait, NAit, SA >::build_reverse_mappings(), count_distinct_colors(), demo_tree_backends(), demo_word_frequency(), Aleph::dsatur_coloring(), Aleph::Net_Graph< NodeT, ArcT >::is_single_sink(), Aleph::Net_Graph< NodeT, ArcT >::is_single_source(), Aleph::Random_Graph< GT, Init_Node, Init_Arc >::make_eulerian(), Aleph::Random_Digraph< GT, Init_Node, Init_Arc >::make_eulerian(), Aleph::Net_Graph< NodeT, ArcT >::make_super_sink(), Aleph::Net_Graph< NodeT, ArcT >::make_super_source(), Aleph::min_cut(), Aleph::planar_dual_metadata(), Aleph::settree_to_Array(), Aleph::settree_to_vector(), AHDispatcher< Key, Operation >::size(), Aleph::AHMapping< Key, ValueType >::size(), Aleph::solve_circulation(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), test(), test_DynSet(), TEST_F(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), Aleph::Net_Graph< NodeT, ArcT >::unmake_super_sink(), Aleph::Net_Graph< NodeT, ArcT >::unmake_super_source(), Aleph::Random_Digraph< GT, Init_Node, Init_Arc >::verify_tables(), and Aleph::welsh_powell_coloring().
|
inline |
Partitions the binary search tree based on a key.
split_key(key,l,r) partitions, according to the key key, the binary search tree this in two trees l and r. After the operation the tree this becomes empty, l contains all keys less than key and r the major ones.
| [in] | key | partition key. |
| [out] | l | tree with keys less than key. |
| [out] | r | tree with keys greater than key. |
Definition at line 1395 of file tpl_dynSetTree.H.
References Aleph::compute_cardinality_rec(), Aleph::divide_and_conquer_partition_dp(), l, Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, r, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inline |
Partitions the binary search tree based on a key that may be present in the tree.
split_key_dup(key,l,r) partitions, according to key, the binary search tree this into two trees l and r. After the operation, tree this becomes empty, l contains all keys less than key and r contains keys greater than or equal to key.
| [in] | key | partition key. |
| [out] | l | tree with keys less than key. |
| [out] | r | tree with keys greater than or equal to key. |
Definition at line 1449 of file tpl_dynSetTree.H.
References Aleph::compute_cardinality_rec(), l, Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, r, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inline |
Partitions the binary search tree based on an infix position.
split_pos(pos,l,r) partitions the binary search tree this into two trees l and r. After the operation, tree this becomes empty, l contains the first pos+1 keys and r the remaining ones.
| [in] | pos | partition position |
| [out] | l | tree with keys in interval [0,pos] |
| [out] | r | tree with keys in interval (pos,N), where N is the number of keys |
Definition at line 1420 of file tpl_dynSetTree.H.
References ah_domain_error_if_constexpr, ah_out_of_range_error_if, Aleph::DynSetTree< Key, Tree, Compare >::call_split_pos(), Aleph::compute_cardinality_rec(), Aleph::divide_and_conquer_partition_dp(), l, Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, r, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inlinenoexcept |
Exchange all elements of this set with dset in constant time (and extremely fast).
| [in] | dset | the set to exchange with this |
Definition at line 500 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::arena_allocator, Aleph::divide_and_conquer_partition_dp(), Aleph::DynSetTree< Key, Tree, Compare >::num_nodes, and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::DynSetTree(), Aleph::DynSetTree< Key, Tree, Compare >::operator=(), Aleph::List_SGraph< __Graph_Node, __Graph_Arc >::swap(), and Aleph::Net_Graph< NodeT, ArcT >::swap().
|
inline |
Definition at line 1507 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp().
|
inline |
Definition at line 1522 of file tpl_dynSetTree.H.
References Aleph::divide_and_conquer_partition_dp().
|
inline |
Traverse all the set of pairs and for each key executes the operation op.
Operation must have the signature
If
returns false then the traversal is aborted; otherwise the routine advance and so on
| [in] | op | operation to execute for each key |
Definition at line 1498 of file tpl_dynSetTree.H.
References Aleph::traverse(), and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by TYPED_TEST().
|
inline |
Definition at line 1513 of file tpl_dynSetTree.H.
References Aleph::traverse(), and Aleph::DynSetTree< Key, Tree, Compare >::tree.
|
inlinenoexcept |
Returns true if the set is using an arena allocator.
Definition at line 1026 of file tpl_dynSetTree.H.
References Aleph::DynSetTree< Key, Tree, Compare >::arena_allocator.
|
inline |
Definition at line 1154 of file tpl_dynSetTree.H.
References Aleph::and, Aleph::check_bst(), and Aleph::DynSetTree< Key, Tree, Compare >::tree.
Referenced by TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), TYPED_TEST(), and TYPED_TEST().
|
private |
Definition at line 464 of file tpl_dynSetTree.H.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::alloc_node(), Aleph::DynSetTree< Key, Tree, Compare >::alloc_node(), Aleph::DynSetTree< Key, Tree, Compare >::arena_allocated_size(), Aleph::DynSetTree< Key, Tree, Compare >::arena_available_size(), Aleph::DynSetTree< Key, Tree, Compare >::empty(), Aleph::DynSetTree< Key, Tree, Compare >::free_node(), Aleph::DynSetTree< Key, Tree, Compare >::swap(), and Aleph::DynSetTree< Key, Tree, Compare >::uses_arena().
|
staticconstexprprivate |
Definition at line 460 of file tpl_dynSetTree.H.
|
private |
Definition at line 463 of file tpl_dynSetTree.H.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::DynSetTree(), Aleph::DynSetTree< Key, Tree, Compare >::__contains_or_insert(), Aleph::DynSetTree< Key, Tree, Compare >::__insert(), Aleph::DynSetTree< Key, Tree, Compare >::__insert_dup(), Aleph::DynSetTree< Key, Tree, Compare >::__search_or_insert(), Aleph::DynSetTree< Key, Tree, Compare >::del(), Aleph::DynSetTree< Key, Tree, Compare >::empty(), Aleph::DynSetTree< Key, Tree, Compare >::find_position(), Aleph::DynSetTree< Key, Tree, Compare >::get_root(), Aleph::DynSetTree< Key, Tree, Compare >::is_empty(), Aleph::DynSetTree< Key, Tree, Compare >::join(), Aleph::DynSetTree< Key, Tree, Compare >::join_dup(), Aleph::DynSetTree< Key, Tree, Compare >::max(), Aleph::DynSetTree< Key, Tree, Compare >::min(), Aleph::DynSetTree< Key, Tree, Compare >::operator=(), Aleph::DynSetTree< Key, Tree, Compare >::remove(), Aleph::DynSetTree< Key, Tree, Compare >::remove_pos(), Aleph::DynSetTree< Key, Tree, Compare >::select(), Aleph::DynSetTree< Key, Tree, Compare >::select(), Aleph::DynSetTree< Key, Tree, Compare >::size(), Aleph::DynSetTree< Key, Tree, Compare >::split_key(), Aleph::DynSetTree< Key, Tree, Compare >::split_key_dup(), Aleph::DynSetTree< Key, Tree, Compare >::split_pos(), and Aleph::DynSetTree< Key, Tree, Compare >::swap().
|
mutableprivate |
Definition at line 462 of file tpl_dynSetTree.H.
Referenced by Aleph::DynSetTree< Key, Tree, Compare >::DynSetTree(), Aleph::DynSetTree< Key, Tree, Compare >::__contains_or_insert(), Aleph::DynSetTree< Key, Tree, Compare >::__insert(), Aleph::DynSetTree< Key, Tree, Compare >::__insert_dup(), Aleph::DynSetTree< Key, Tree, Compare >::__search_or_insert(), Aleph::DynSetTree< Key, Tree, Compare >::del(), Aleph::DynSetTree< Key, Tree, Compare >::empty(), Aleph::DynSetTree< Key, Tree, Compare >::find(), Aleph::DynSetTree< Key, Tree, Compare >::find_position(), Aleph::DynSetTree< Key, Tree, Compare >::for_each_in_preorder(), Aleph::DynSetTree< Key, Tree, Compare >::for_each_inorder(), Aleph::DynSetTree< Key, Tree, Compare >::for_each_postorder(), Aleph::DynSetTree< Key, Tree, Compare >::for_each_preorder(), Aleph::DynSetTree< Key, Tree, Compare >::get_root(), Aleph::DynSetTree< Key, Tree, Compare >::get_root_node(), Aleph::DynSetTree< Key, Tree, Compare >::height(), Aleph::DynSetTree< Key, Tree, Compare >::internal_path_length(), Aleph::DynSetTree< Key, Tree, Compare >::join(), Aleph::DynSetTree< Key, Tree, Compare >::join_dup(), Aleph::DynSetTree< Key, Tree, Compare >::max(), Aleph::DynSetTree< Key, Tree, Compare >::min(), Aleph::DynSetTree< Key, Tree, Compare >::operator=(), Aleph::DynSetTree< Key, Tree, Compare >::position(), Aleph::DynSetTree< Key, Tree, Compare >::remove(), Aleph::DynSetTree< Key, Tree, Compare >::remove_pos(), Aleph::DynSetTree< Key, Tree, Compare >::search(), Aleph::DynSetTree< Key, Tree, Compare >::select(), Aleph::DynSetTree< Key, Tree, Compare >::select(), Aleph::DynSetTree< Key, Tree, Compare >::split_key(), Aleph::DynSetTree< Key, Tree, Compare >::split_key_dup(), Aleph::DynSetTree< Key, Tree, Compare >::split_pos(), Aleph::DynSetTree< Key, Tree, Compare >::swap(), Aleph::DynSetTree< Key, Tree, Compare >::traverse(), Aleph::DynSetTree< Key, Tree, Compare >::traverse(), and Aleph::DynSetTree< Key, Tree, Compare >::verify().