static size_t node_pathlen(const tr_node* node, size_t level) { size_t n = 0; ASSERT(node != NULL); if (node->llink) n += level + node_pathlen(node->llink, level + 1); if (node->rlink) n += level + node_pathlen(node->rlink, level + 1); return n; }
static unsigned node_pathlen(const hb_node *node, unsigned level) { unsigned n = 0; ASSERT(node != NULL); if (node->llink) n += level + node_pathlen(node->llink, level + 1); if (node->rlink) n += level + node_pathlen(node->rlink, level + 1); return n; }
size_t tr_tree_pathlen(const tr_tree* tree) { ASSERT(tree != NULL); return tree->root ? node_pathlen(tree->root, 1) : 0; }
unsigned hb_tree_pathlen(const hb_tree *tree) { ASSERT(tree != NULL); return tree->root ? node_pathlen(tree->root, 1) : 0; }