笔试时遇到的一道题目,记下来以后再看
static boolean IsSearchTree(Bitree *t){
if(!t) //空二叉树情况
return true;
else if(!(t.lchild)&&!(t.rchild)) //左右子树都无情况
return true;
else if((t.lchild)&&!(t.rchild)){ //只有左子树情况
if(t.lchild.data>t.data)
return false;
else
return IsSearchTree(t.lchild);
}
else if((t.rchild)&&!(t.lchild)){ //只有右子树的情况
if(t.rchild.data<t.data)
return false;
else
return IsSearchTree(t.rchild);
}
else{ //左右子树都有的情况
if((t.lchild.data>t.data) || (t.rchild.data<t.data))
return false;
else
return (IsSearchTree(t.lchild) && IsSearchTree(t.rchild));
}
}