二叉排序树
int predt=-10000000;
int JudgeBST(BiTree T){
int b1,b2;
if (T==NULL){
return 1;
}
b1=JudgeBST(T->rchild);
if (b1==0 || predt>= T->rchild->data){
return 0;
}
predt=T->data;
b2=JudgeBST(T->rchild);
return b2;
}
平衡二叉树
int balance ,h;
void Judge_AVL(BiTree T){
int b1,b2,h1,h2;
if(T==NULL){
h=0;
balance=1;
return;
}
if (T->lchild==NULL && T->rchild==NULL){
h=1;
balance=1;
return;
}
Judge_AVL(T->lchild);
b1=balance;
h1=h;
Judge_AVL(T->rchild);
b2=balance;
h2=h;
h=(h1>h2?h1:h2)+1;
if (abs(h1-h2)<2){
balance=b1&&b2;
} else{
balance=0;
}
}