您的位置:首页 > 职场人生

面试题30

2016-05-25 20:35 363 查看
二叉搜索树的后序遍历序列:判断数组是不是某二叉搜索树的后序遍历结果

#include<stdio.h>

int isTreeOrder(int *A, int len) {
if (A == NULL || len <= 0)
return 0;

int root = A[len - 1];
int i;
for (i = 0; i < len; i++) {   //左子树都小于根结点
if (A[i] >= root)
break;
}

int j ;
for (j=i; j < len; j++) {    //右子树都大于根结点
if (A[j] < root)
return 0;
}

int left = 1;
if (i > 0) {
left = isTreeOrder(A, i);
}

int right = 1;
if (i<len-1 ) {
right = isTreeOrder(A+i,len-i-1);
}

return left&&right;
}

int main() {
int A[] = {7,4,5,6};

int len = sizeof(A) / sizeof(A[0]);
int istrue=isTreeOrder(A, len);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: