Esempio n. 1
0
static bool isBalance(BSTreeNode<T>* pbs)
{
	if (pbs==NULL)
		return true;
	int dis = Depth(pbs->left) - Depth(pbs->right);
	if (dis>1 || dis<-1 )
		return false;
	else
		return isBalance(pbs->left) && isBalance(pbs->right);
}
Esempio n. 2
0
extern int isBalance(TreeNode *N) {
	int left, right;
	if(N==NULL) return 0;
	else {
		left = recurseHeight(N->left,0,0);
		right = recurseHeight(N->right,0,0);
		if(abs(left-right)<=1 && isBalance(N->right)==0 && isBalance(N->left)==0) { /*determines if it is balanced*/
			return 0;
		} else {
			return 1;
		}
	}
}
Esempio n. 3
0
int main(void)
{
	printf("isBalance testing...\n");
	TreeNode * root;
	printf("ans is %d.\n", isBalance(root));
	return 0;
}
Esempio n. 4
0
File: tmap.c Progetto: wfei/hw
//check whether the node(root) is
//size-balanced
//if yes, return 1, 
//otherwise, return 0
char Balance(NODE *r, char * name, double val){
    if (r == NULL) { // r is the root of a subtree
	return 1;
    }
    if(r->nameVal.value == val){
	if(strcmp(r->nameVal.name, name) > 0){
	    r->numOfLeft++;
	}else{
	    r->numOfRight++;
	}
    } else if(val < r->nameVal.value){
	r->numOfLeft++;
    } else {
	r->numOfRight++;
    }
    return isBalance(r);
}
Esempio n. 5
0
extern int Balanced (Tree *T) {
	int balanced;
	balanced = isBalance(T->root);
	return balanced;
}