#include <avl_tree.hpp>
Classes | |
struct | Node |
Public Member Functions | |
AvlTree (IPoolAllocator &allocator, std::size_t allocator_quota) | |
bool | contains (const T *data) const |
size_t | getSize () const |
bool | insert (T *data) |
bool | isEmpty () const |
T * | max () const |
void | removeEntry (T *data) |
void | walkPostOrder (std::function< void(T *&)> forEach) |
virtual | ~AvlTree () |
Protected Member Functions | |
void | postOrderNodeTraverseRecursively (Node *n, std::function< void(Node *&)> forEach) |
Node * | removeNode (Node *node, T *data) |
Static Protected Member Functions | |
static bool | linkedListContains (Node *head, const T *data) |
Protected Attributes | |
LimitedPoolAllocator | allocator_ |
Node * | root_ |
Private Member Functions | |
Node * | deleteFromList (Node *root, T *data) |
void | deleteNode (Node *&n) |
Node * | insertNode (Node *node, Node *newNode) |
Node * | makeNode (T *payload) |
void | postOrderTraverseNodeCleanup (Node *n) |
void | postOrderTraverseRecursively (Node *n, std::function< void(T *&)> forEach) |
![]() | |
Noncopyable () | |
~Noncopyable () | |
Static Private Member Functions | |
static void | appendToEndOf (Node *head, Node *newNode) |
static int16_t | balanceOf (Node *n) |
static int16_t | heightOf (const Node *n) |
static int16_t | maxOf (int16_t a, int16_t b) |
static Node * | rotateLeft (Node *x) |
static Node * | rotateRight (Node *y) |
Private Attributes | |
size_t | len_ = 0 |
Definition at line 22 of file avl_tree.hpp.
|
inline |
Definition at line 313 of file avl_tree.hpp.
|
inlinevirtual |
Definition at line 319 of file avl_tree.hpp.
|
inlinestaticprivate |
Definition at line 159 of file avl_tree.hpp.
|
inlinestaticprivate |
Definition at line 79 of file avl_tree.hpp.
|
inline |
Definition at line 366 of file avl_tree.hpp.
|
inlineprivate |
Definition at line 171 of file avl_tree.hpp.
|
inlineprivate |
Definition at line 71 of file avl_tree.hpp.
|
inline |
Definition at line 339 of file avl_tree.hpp.
|
inlinestaticprivate |
Definition at line 38 of file avl_tree.hpp.
|
inline |
Definition at line 328 of file avl_tree.hpp.
|
inlineprivate |
Definition at line 118 of file avl_tree.hpp.
|
inline |
Definition at line 348 of file avl_tree.hpp.
|
inlinestaticprotected |
Definition at line 301 of file avl_tree.hpp.
|
inlineprivate |
Definition at line 56 of file avl_tree.hpp.
|
inline |
Definition at line 352 of file avl_tree.hpp.
|
inlinestaticprivate |
Definition at line 87 of file avl_tree.hpp.
|
inlineprotected |
Definition at line 223 of file avl_tree.hpp.
|
inlineprivate |
Definition at line 205 of file avl_tree.hpp.
|
inlineprivate |
Definition at line 46 of file avl_tree.hpp.
|
inline |
Definition at line 324 of file avl_tree.hpp.
|
inlineprotected |
Definition at line 233 of file avl_tree.hpp.
|
inlinestaticprivate |
Definition at line 104 of file avl_tree.hpp.
|
inlinestaticprivate |
Definition at line 91 of file avl_tree.hpp.
|
inline |
Definition at line 343 of file avl_tree.hpp.
|
protected |
Definition at line 221 of file avl_tree.hpp.
|
private |
Definition at line 36 of file avl_tree.hpp.
|
protected |
Definition at line 33 of file avl_tree.hpp.