习题4.3 是否二叉搜索树 (25分) /刷题笔记

前言

本题判断是否为二叉搜索树,定义如下
在这里插入图片描述!!!超级注意!!!
只要是根节点左子树以及左子树的儿子,孙子,曾孙子,曾曾…不管是左边的还是右边的,都要满足,比根节点的值要小; 根节点的右子树同理。

so,敲的时候,不能只考虑相邻的根节点与左子树或右子树的大小关系;
不然就会和本菜鸡一样,一直不晓得自己哪里错了。。。

最后偷偷瞄了一眼,别银的code,奥!!!原来如此!!!
就一中序遍历,不过如此~爷就是想不到!切!

爷直接上代码,呸。 给爷们上代码~

bool flag=true;
int pre=-9999999;

void InOrderTraverse(BinTree T){
    if(!T){
        return;
    }
    InOrderTraverse(T->Left);
    if(pre>=T->Data){
        flag=false;
        return;
    }else{
        pre=T->Data;
    }
    InOrderTraverse(T->Right);
}

bool IsBST ( BinTree T ){
    if(!T){
        return true;
    }
    InOrderTraverse(T);
    return flag;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值