#include <iostream>
using namespace std;
bool verify_tree_pre(int a[],int len)
{
if (a==NULL || len<=0)
{
return false;
}
int root = a[0];
int i,j;
for (i=1;i<len;i++)
{
if (a[i] > root)
{
break;
}
}
for (j = i;j<len;j++)
{
if (a[j] < root)
{
return false;
}
}
bool left = true;
if (i-1 > 0)
{
left = verify_tree_pre(a+1,i-1);
}
bool right = true;
if (len-i > 0)
{
right = verify_tree_pre(a+i,len-i);
}
return (left&&right);
}
int main()
{
int a[] = {8,6,5,7,10,9,11};
int len = sizeof(a)/sizeof(a[0]);
if (verify_tree_pre(a,len))
{
cout<<"yes"<<endl;
}
else
{
cout<<"no"<<endl;
}
return 0;
}
输入一个数组,判断该数组是否是某二叉树的前序遍历结果
最新推荐文章于 2022-07-14 14:07:25 发布