清帮忙讨论一下这个算法,谢谢

rdqjuven 2003-01-05 05:30:28
请问以下算法是否有错误,谢谢

用递归方法判断一棵二叉树是否为二叉排序树

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; //返回最终结果
}
...全文
浏览 点赞 收藏 回复
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复

还没有回复,快来抢沙发~

发动态
发帖子
软件水平考试
创建于2007-08-27

2700

社区成员

就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
申请成为版主
社区公告
暂无公告