81# define DIFF(p) ((p)->getDiff())
91 if (p == Node::NullPtr)
103 if (
static_cast<int>(
DIFF(p)) !=
hR -
hL)
107 if (p->getCount() !=
LLINK(p)->getCount() +
RLINK(p)->getCount() + 1)
SentinelCtor
Tag type for sentinel node construction.
#define DIFF(p)
Access the balance factor of node p.
WeightedDigraph::Node Node
AVL node data with balance factor and subtree count.
AvlNodeRk_Data(SentinelCtor) noexcept
size_t & getCount() noexcept
AvlNodeRk_Data() noexcept
signed char & getDiff() noexcept
Extended AVL node with subtree counter.
#define DECLARE_BINNODE_SENTINEL(Name, height, Control_Data)
Specify tree node for a binary tree.
constexpr Node *& RLINK(Node *p) noexcept
Return the right tree of p.
constexpr Node *& LLINK(Node *p) noexcept
Return a pointer to left subtree.
size_t computeHeightRec(Node *root) noexcept
Compute recursively the height of root
Main namespace for Aleph-w library functions.
bool is_avl_rk(Node *p)
Verify if tree rooted at p is a valid AVL tree with correct counters.
bool diff(const C1 &c1, const C2 &c2, Eq e=Eq())
Check if two containers differ.
DynList< T > maps(const C &c, Op op)
Classic map operation.
Utility functions for binary tree operations.