#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;
}输入一个数组,判断该数组是否是某二叉树的前序遍历结果
最新推荐文章于 2023-11-24 13:50:20 发布
本文介绍了一个用于验证给定数组是否为二叉搜索树前序遍历的有效序列的C++程序。通过递归地检查左右子树是否符合二叉搜索树的性质来实现这一目的。
1694

被折叠的 条评论
为什么被折叠?



