清帮忙讨论一下这个算法,谢谢
请问以下算法是否有错误,谢谢
用递归方法判断一棵二叉树是否为二叉排序树
BOOL Judge(BiTree T)
{
static ElemType preNode=MIN; //preNode记录上次中序遍历的节点,初始化为最小值
//如果中序遍历得到的序列中,一旦当前节点比上一个节点小,
//则判定不是排序树,否则,通过res返回真
//res一旦置假,就不能再变为真
static BOOL res=TRUE;
//递归实现中序遍历
if(!T||res==FALSE) return 1;
else
{
Judge(T->leftchild); //调用左子树
if(pre>T->data) //如果当前节点比上次访问的小
res=FALSE; //置res假
pre=T->data; //pre记录上次访问节点的值
Judge(T->rightchild); //调用右子树
}
return res; //返回最终结果
}