正文

判断某棵二叉树是否二叉排序树2005-09-16 13:15:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/boxer/4814.html

分享到:

根据二叉排序树的定义,递归实现即可。

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);
}

阅读(6838) | 评论(2)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册