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

习题4.3 是否二叉搜索树


/*
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  阅读(2)  评论(0编辑  收藏  举报

导航