判断满二叉树,递归
1.空树,满
2.左满右满,且左右深度相等,满
3.否则,非满
bool isfull( bitree t){
if(!t) return true;
int ldepth,rdepth;
ldepth=depth(t->lchild);
rdepth=depth(t->rchild);
if(isfull(t->lchild)&&isfull(t->rchild)&&ldepth==rdepth)
return true;
return false;
}
int depth( bitree t){
if(!t) return 0;
int ld,rd,d;
ld=depth(t->lchild);
rd=depth(t->rchild);
d=1+ld>rd?ld:rd;
}
或者:
bool isfull(bitree t,int &depth){
int ldepth,rdepth;
if(t==null){
depth=0;
return true;
}
if(isfull(t->lchild)&&isfull(t->rchild)&&ldepth==rdepth){
depth=ldepth+1;
return true;
}
return false;
}