判断给定的二叉树是否是二叉排序树
根据二叉排序树的定义,左子树结点值 < 根结点值 < 右子树结点值,所以对二叉排序树进行中序遍历(LNR),可以得到一个递增的有序序列。因此,对给定的二叉树进行中序遍历,若始终能保持前一个值小于后一个值,则说明该二叉树是一颗二叉排序树。
栈的基本操作以严蔚敏编写的教材为准。
如有谬误或者不足还请批评指正!
基于非递归中序遍历算法判断:
int pre = -32767; //pre为全局变量,保存当前结点中序前驱的值,初始值为-∞
int IsBST(BSTree T)
{
InitStack(S); //初始化栈
BSTree p = T; //p为遍历指针
while(p || !StackEmpty