判断序列是否为二叉树后序遍历

来源:互联网 发布:北京红黄蓝 知乎 编辑:程序博客网 时间:2024/06/04 23:28

题目:输入一个整数数组,判断该数组是否是二叉搜索树的后序遍历,若是返回TRUE;否则返回false,假设输入的数组数字各不相同。如输入数组{5,7,6,9,11,10,8} ,返回ture;

bool isafterorder(int *p,int len){if (!p||len<=0){return false;}if (len==1)//{return true;}int i=0;int root=p[len-1];for (;i<len-1;++i){if (p[i]>root){break;}}int j=i;for (;j<len-1;++j){if (p[j]<root){return false;}}bool left=true,right=true;left=isafterorder(p,i);right=isafterorder(p+i,len-1-i);return left&&right;}int _tmain(int argc, _TCHAR* argv[]){int a[]={5,7,6,9,11,10,8};int b[]={7,4,6,5};bool flag=false;flag=isafterorder(a,sizeof(a)/sizeof(int));return 0;}


0 0