判断某数组是不是二叉搜索树的后序遍历序列:
所谓二叉搜索树,是指根节点左子树结点都小于根结点,右子树结点都大于根结点;
算法实现如下:
bool VerifySquenceOfBST(int sequence[],int length){
if(sequence[]==null || length<=0){
return false;
}
int root=sequence[length-1];
int i=0;
//左子结点小于根节点
for(;i<length-1;i++){
if(sequence[i]>root){
break;
}
}
//右子结点大于根结点
for(int j=i;j<length-1;j++){
if(sequence[j]<root){
return false;
}
}
//判断左子树是不是二叉搜索树
bool left=true;
if(i>0){
left=VerifySquenceOfBST(sequence,i);
}
//判断右子树是不是二叉搜索树
bool right=true;
if(i<length-1){
right=VerifySquenceOfBST(sequence+i,length-i-1);
}
return(left && right);
}//判断某数组是不是二叉搜索树的后序遍历序列
转载请注明原文地址: https://ju.6miu.com/read-12715.html