#include<iostream>
#include<cstdlib>
using namespace std;
int count =0 ,flag=0;
typedef struct node
{
int data;
struct node *l,*r;
}Tree;
void Head(Tree *&T)
{
T=(Tree *)malloc(sizeof(Tree));
T->l=T->r=NULL;
cin>>T->data;
}
void Init(Tree *&T,int i)
{
if(T==NULL)
{
T=(Tree *)malloc(sizeof(Tree));
T->l=T->r=NULL;
T->data = i;
return ;
}
if(T->data<i)
{
Init(T->r,i);
}
if(T->data>i)
{
Init(T->l,i);
}
}
void Find(Tree *&T,int t)
{
if(T==NULL) return ;
count++;
if(t==T->data)
{
cout<<count;
flag=1;
return;
}
else if(t<T->data)
{
Find(T->l,t);
}
else if(t>T->data)
{
Find(T->r,t);
}
}
int main()
{
Tree *T;
int sum,i,tmp;
cin>>sum;
Head(T);
for(i=2;i<=sum;i++)
{
cin>>tmp;
Init(T,tmp);
}
int k;
cin>>k;
Find(T,k);
if(flag==0) cout<<"-1";
return 0;
}
SWUST数据结构--二叉树的实现和查找
最新推荐文章于 2022-09-21 11:14:30 发布