bool IsBSTreePostOrder(int* array,int size)
{
if(NULL == array || size<0)
return 0;
int root = array[size-1];//序列的最后一个元素即为二叉搜索树的根节点
int i = 0;
for(;i<size-1;++i)
{
if(array[i]>root)//序列前一部分的值均小于根节点的值
break;
}
int j = i;
for(;i<size-1;++j)
{
if(array[j]<root)//序列的后一部分的值均大于根节点的值
break;
}
bool left = true
if(i>0)
left = IsBSTreePostOrder(array,i);
bool right = true;
if(i<size-1)
right = IsBSTreePostOrder(array+i,size-i-1);//控制传入序列的长度
return left&&right;
}
输入一个数组,判断该数组是不是二叉搜索树的后序遍历序列
最新推荐文章于 2022-05-22 19:13:59 发布