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

程序员面试100题之六,判断整数序列是不是二元查找树的后序遍历结果

2010-09-24 13:21 288 查看
// 100_6.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

bool verify(int * arr, int len)
{
if(arr == NULL || len <=0)
return false;

int root = arr[len-1];

int i=0;
for(;i<len-1;i++)
{
if(arr[i]>root)
break;
}

int j=i;
for(;j<len-1;j++)
{
if(arr[j]<root)
return false;
}

bool left = true;
if(i>0)
left = verify(arr,i);

bool right = true;
if(i<len-1)
right = verify(arr+i,len-i-1);

return left&&right;
}

int _tmain(int argc, _TCHAR* argv[])
{
int arr1[] = {5,7,6,9,11,10,8};
int arr2[] = {7,4,6,5};
if(verify(arr1,7))
printf("yes\n");
else
printf("no\n");
if(verify(arr2,4))
printf("yes\n");
else
printf("no\n");

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