Exemplo n.º 1
0
/* --- Function: int treeheight(AvlTreeNode node, int depth) --- */
static int treeheight(AvlTreeNode node, int depth)
{
  if (!node)
    return depth;
  else
    return maxval(treeheight(node->left, depth+1),
                  treeheight(node->right, depth+1));
}
Exemplo n.º 2
0
    int treeheight(TreeNode* root){
    	if(root == NULL)
    		return 0;

    	int lh = treeheight(root->left);
    	int rh = treeheight(root->right);

    	if(abs(lh - rh) > 1 || rh == -1 || lh == -1)
    		return -1;

    	return max(lh, rh) + 1;
    } 
Exemplo n.º 3
0
    bool isBalanced(TreeNode* root){
    	int h = treeheight(root);
    	if(h == -1)
    		return false;

    	return true;
        
    }
Exemplo n.º 4
0
void bt_dump_info(FILE *fp, bt *btr)
{
	fprintf(fp, "BT: %p t: %d nbits: %d nbyte: %d kbyte: %d "
			"ksize: %d koff: %d noff: %d numkeys: %d numnodes: %d "
			"height: %d btr: %p btype: %d ktype: %d bflag: %d "
			"num: %d root: %p dirty_left: %u msize: %ld dsize: %ld "
			"dirty: %u\n",
			btr, btr->t, btr->nbits, btr->nbyte, btr->kbyte, btr->s.ksize,
			btr->keyofst, btr->nodeofst, btr->numkeys, btr->numnodes,
			treeheight(btr), (void *)btr, btr->s.btype, btr->s.ktype,
			btr->s.bflag, btr->s.num, btr->root,
			btr->dirty_left, btr->msize, btr->dsize, btr->dirty);
	DEBUG_BT_TYPE(fp, btr);
}
Exemplo n.º 5
0
void
bt_treestats(struct btree *btr)
{
	printf("root: %p, keyoff: %d, nodeptroff: %d, nkeys: %d, t: %d, nbits: %d, textra: %d, height: %d",
		btr->root, btr->keyoff, btr->nodeptroff, btr->nkeys, btr->t, btr->nbits, btr->textra, treeheight(btr));

#ifdef STATS
	printf(", numkeys: %d, numnodes: %d", btr->numkeys, btr->numnodes);
#endif
	puts("");
}
Exemplo n.º 6
0
int AVLTREEheight(AvlTree tree)
{
  return treeheight(AVLTREEroot(tree), 0);
}