根据二叉排序树的定义,递归实现即可。
bool Judge(PBinTree pbt)
{
PBinTreeNode pLeft, pRight;
bool bLeft = false, bRight=false, bRootl=false, bRootr=false;
if(pbt == NULL)
return true;
// 判断根节点
pLeft = pbt->left;
pRight = pbt->right;
if(pLeft && pLeft->data <= pbt->data)
{
bRootl = true;
}
else
{
return false;
}
if(pRight && pRight->data >= pbt->data)
{
bRootr = true;
}
else
{
return false;
}
// 判断左右子树
bLeft = Judge(pLeft);
bRight = Judge(pRight);
// 同时满足条件才叫二叉排序树
return( bLeft && bRight && bRootl && bRootr);
}
正文
判断某棵二叉树是否二叉排序树2005-09-16 13:15:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/boxer/4814.html
阅读(6838) | 评论(2)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论