//可以用递归来实现
bool VerifysquenceofBST(int *sequence,int length){
if(sequence == NULL || length<=0) return false;
int root = sequence[length - 1];
//取最后一位的根节点
//检查左子树的情况
for(int i=0;i<length-1;++i){
if(sequence[i]>root) break;//检查到临界点
}
//从j开始就开始检查右子树了,右子树比根节点大
for(int j=i,j<length-1;++j){
if(sequence[j]<root) return false;
}
//判断左子树是不是二叉搜索树
left = true;
if(i>0){
left = VerifysquenceofBST(sequence,i);
}
//判断右子树是不是二叉搜索树
right = true;
if(i<length-1){
right = VerifysquenceofBST(sequence+i,length-i-1);
}
return (left&&right);
}
二叉搜索树的后序遍历序列
最新推荐文章于 2024-05-27 21:18:06 发布