判断该给定的二叉树是否为二叉搜索树

/*
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
*/
BinTree B=NULL;//全局指针,用来记录中序的上一个结点
bool IsBST( BinTree T)
{
//如果结点为空 直接返回true
if(T){
if(!IsBST(T->Left)) return false; //进左子树
if(B && B->Data > T->Data) return false;
//若上一个结点的值大于当前这个说明不合法,返回false
B=T; //赋值此时的结点给B,方便进入下一次的比较
if(!IsBST(T->Right)) return false;//进右子树
}
return true;
}
posted on 2024-11-09 23:38 swj2529411658 阅读(20) 评论(0) 收藏 举报
浙公网安备 33010602011771号