unsigned pj_rbtree_min_height( pj_rbtree *tree, pj_rbtree_node *node ) { unsigned l, r; PJ_CHECK_STACK(); if (node==NULL) node=tree->root; l = (node->left != tree->null) ? pj_rbtree_max_height(tree,node->left)+1 : 0; r = (node->right != tree->null) ? pj_rbtree_max_height(tree,node->right)+1 : 0; return l > r ? r : l; }
PJ_DEF(unsigned) pj_rbtree_max_height( pj_rbtree *tree, pj_rbtree_node *node ) { unsigned l, r; PJ_CHECK_STACK(); if (node==NULL) node = tree->root; l = node->left != tree->null ? pj_rbtree_max_height(tree,node->left)+1 : 0; r = node->right != tree->null ? pj_rbtree_max_height(tree,node->right)+1 : 0; return l > r ? l : r; }
unsigned max_height(Node *node=NULL) { return pj_rbtree_max_height(&t_, node); }