面试题30

来源:互联网 发布:找女朋友的软件 编辑:程序博客网 时间:2024/06/05 23:43

二叉搜索树的后序遍历序列:判断数组是不是某二叉搜索树的后序遍历结果

#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);}
0 0