Base Framework
|
Ordered binary tree. More...
#include <base/collection/OrderedBinaryTree.h>
Inherits BinaryTree< TYPE >.
Classes | |
class | Iterator |
class | ReadIterator |
Public Types | |
typedef TYPE | Value |
typedef KEY | Key |
typedef BinaryTree< TYPE >::Node | Node |
typedef InfixOrderEnumerator< EnumeratorTraits< Node > > | Enumerator |
typedef InfixOrderEnumerator< ReadEnumeratorTraits< Node > > | ReadEnumerator |
typedef PrefixOrderIterator< IteratorTraits< Node > > | NodePrefixIterator |
typedef PrefixOrderIterator< ReadIteratorTraits< Node > > | NodeReadPrefixIterator |
typedef InfixOrderIterator< IteratorTraits< Node > > | NodeInfixIterator |
typedef InfixOrderIterator< ReadIteratorTraits< Node > > | NodeReadInfixIterator |
typedef PostfixOrderIterator< IteratorTraits< Node > > | NodePostfixIterator |
typedef PostfixOrderIterator< ReadIteratorTraits< Node > > | NodeReadPostfixIterator |
typedef InfixOrderIterator< IteratorTraits< Node > > | NodeIterator |
typedef InfixOrderIterator< ReadIteratorTraits< Node > > | NodeReadIterator |
Public Member Functions | |
OrderedBinaryTree () noexcept | |
OrderedBinaryTree (const OrderedBinaryTree ©) | |
OrderedBinaryTree & | operator= (const OrderedBinaryTree ©) |
Enumerator | getEnumerator () noexcept |
ReadEnumerator | getReadEnumerator () const noexcept |
ReadIterator | begin () const noexcept |
ReadIterator | end () const noexcept |
Node * | find (const Key &value) noexcept |
const Node * | find (const Key &value) const noexcept |
Node * | getFirst () noexcept |
Node * | getLast () noexcept |
Node * | rebalance (Node *node) noexcept |
void | rebalance () |
bool | rebalance (Node *node, bool right) noexcept |
Pair< Node *, bool > | add (const Value &value) |
Value * | add2 (const Value &value) |
Pair< Node *, bool > | add (Value &&value) |
Value * | add2 (Value &&value) |
void | remove (Node *node) |
template<class PREDICATE > | |
MemorySize | removeImpl (Node *node, PREDICATE predicate) |
template<class PREDICATE > | |
MemorySize | removeByPredicate (PREDICATE predicate) |
Iterator | remove (const Iterator &it) |
void | removeAll () |
Static Public Member Functions | |
static bool | invariant (const Node *a, const Node *b) |
Additional Inherited Members | |
![]() | |
typedef TYPE | Value |
typedef BinaryNode< TYPE > | Node |
typedef PrefixOrderEnumerator< EnumeratorTraits< Node > > | Enumerator |
typedef PrefixOrderEnumerator< ReadEnumeratorTraits< Node > > | ReadEnumerator |
typedef PrefixOrderIterator< ReadIteratorTraits< Node > > | ReadIterator |
![]() | |
BinaryTree () | |
BinaryTree (const BinaryTree ©) noexcept | |
BinaryTree & | operator= (const BinaryTree ©) noexcept |
bool | isEmpty () const noexcept |
Node * | getRoot () |
const Node * | getRoot () const noexcept |
Enumerator | getEnumerator () noexcept |
ReadEnumerator | getReadEnumerator () const noexcept |
void | setRoot (Node *node) |
void | removeAll () |
![]() | |
Reference< BinaryTreeImpl > | elements |
Ordered binary tree.
Binary tree with the nodes ordered. All the values of the left and right subtrees are respectively less than and greater than the value for any node.
typedef InfixOrderEnumerator<EnumeratorTraits<Node> > OrderedBinaryTree< TYPE, KEY >::Enumerator |
Modifying enumerator.
typedef KEY OrderedBinaryTree< TYPE, KEY >::Key |
The type of the key.
typedef BinaryTree<TYPE>::Node OrderedBinaryTree< TYPE, KEY >::Node |
The type of the node.
typedef InfixOrderIterator<IteratorTraits<Node> > OrderedBinaryTree< TYPE, KEY >::NodeInfixIterator |
Modifying iterator.
typedef InfixOrderIterator<IteratorTraits<Node> > OrderedBinaryTree< TYPE, KEY >::NodeIterator |
Modifying iterator.
typedef PostfixOrderIterator<IteratorTraits<Node> > OrderedBinaryTree< TYPE, KEY >::NodePostfixIterator |
Modifying iterator.
typedef PrefixOrderIterator<IteratorTraits<Node> > OrderedBinaryTree< TYPE, KEY >::NodePrefixIterator |
Modifying iterator.
typedef InfixOrderIterator<ReadIteratorTraits<Node> > OrderedBinaryTree< TYPE, KEY >::NodeReadInfixIterator |
Non-modifying iterator.
typedef InfixOrderIterator<ReadIteratorTraits<Node> > OrderedBinaryTree< TYPE, KEY >::NodeReadIterator |
Non-modifying iterator.
typedef PostfixOrderIterator<ReadIteratorTraits<Node> > OrderedBinaryTree< TYPE, KEY >::NodeReadPostfixIterator |
Non-modifying iterator.
typedef PrefixOrderIterator<ReadIteratorTraits<Node> > OrderedBinaryTree< TYPE, KEY >::NodeReadPrefixIterator |
Non-modifying iterator.
typedef InfixOrderEnumerator<ReadEnumeratorTraits<Node> > OrderedBinaryTree< TYPE, KEY >::ReadEnumerator |
Non-modifying enumerator.
typedef TYPE OrderedBinaryTree< TYPE, KEY >::Value |
The type of the value.
|
inlinenoexcept |
Initializes an empty ordered binary tree.
|
inline |
Initializes binary tree from other binary tree.
|
inline |
Adds a value to the binary tree.
value | The value to be added. |
|
inline |
Adds a value to the binary tree.
value | The value to be added. |
|
inline |
Adds a value to the binary tree.
value | The value to be added. |
|
inline |
Adds a value to the binary tree.
value | The value to be added. |
|
inlinenoexcept |
Returns a non-modifying iterator of the ordered binary tree.
|
inlinenoexcept |
Returns a non-modifying iterator of the ordered binary tree.
|
inlinenoexcept |
Searches for the specified value in this tree.
value | The value to look for. |
|
inlinenoexcept |
Searches for the specified value in this tree.
value | The value to look for. |
|
inlinenoexcept |
Returns a modifying enumerator of the ordered binary tree.
|
inlinenoexcept |
Returns the first/smallest value of this tree.
|
inlinenoexcept |
Returns the last/highest value of this tree.
|
inlinenoexcept |
Returns a non-modifying enumerator of the ordered binary tree.
|
inline |
Assignment of ordered binary tree to ordered binary tree.
|
inlinenoexcept |
Rebalances the given subtree.
|
inline |
Removes the given item and returns the next iterator.
|
inline |
Removes the specified node from the binary tree. Raises InvalidNode if the node is invalid.
node | The node to be removed. |
|
inline |
Removes all the nodes from the tree.
|
inline |
Removes all elements matching the given predicate.