未完,在更新
#include<iostream>
using namespace std;
int Tree[1000];
int length=0;
void Insert_Num(int value)
{
if(value==0)
{
return ;
}
int cnt=0;
while(Tree[cnt]!=0)
{
if(Tree[cnt]==value)
{
return ;
}
else if(Tree[cnt]<value)
{
cnt=cnt*2+2;
}
else
{
cnt=cnt*2+1;
}
}
Tree[cnt]=value;
length=cnt;
}
void pre_visit1(int cnt)
{
if(cnt>length)
return ;
cout<<Tree[cnt]<<" ";
pre_visit1(cnt*2+1);
pre_visit1(cnt*2+2);
}
void pre_visit2(int cnt)
{
if(cnt>length)
return ;
pre_visit2(cnt*2+1);
cout<<Tree[cnt]<<" ";
pre_visit2(cnt*2+2);
}
void pre_visit3(int cnt)
{
if(cnt>length)
return ;
pre_visit3(cnt*2+1);
pre_visit3(cnt*2+2);
cout<<Tree[cnt]<<" ";
}
bool search(int value)
{
int cnt=0;
while(Tree[cnt]!=0)
{
if(Tree[cnt]==value)
{
return true;
}
else if(Tree[cnt]<value)
{
cnt=cnt*2+2;
}
else
{
cnt=cnt*2+1;
}
}
return false;
}
int main()
{
int N;
int tree_num;
cin>>N;
for(int i=0; i<N; i++)
{
cin>>tree_num;
Insert_Num(tree_num);
}
for(int i=0; i<=length; i++)
{
cout<<Tree[i]<<" ";
}
cout<<endl;
pre_visit1(0);
cout<<endl;
pre_visit2(0);
cout<<endl;
pre_visit3(0);
if(search(99))
{
cout<<"找到了。"<<endl;
}
else
{
cout<<"没有找到。";
}
return 0;
}