题目描述
已知一棵二叉树用邻接表结构存储,中序查找二叉树中值为x的结点,并指出是
第几个结点。
输入
第一行n为二叉树的结点个树,n<=100;第二行x表示要查找的结点的值;以下第一列数据是各结点的值,第二列数据是左儿子结点编号,第三列数据是右儿子结点编号。
输出
输出要查找的结点数目。
样例输入
7 15 5 2 3 12 4 5 10 0 0 29 0 0 15 6 7 8 0 0 23 0 0
样例输出
4
#include<iostream>
using namespace std;
struct node{
int num;
int lch,rch;
}tree[105];
int n,x,k=0,t;
bool vis[105];
void zhongxu(int step)
{
if(step!=0){
zhongxu(tree[step].lch);
k++;
if(step==t){
printf("%d\n",k);
return;
}
zhongxu(tree[step].rch);
}
}
int main()
{
cin>>n>>x;
for(int i=1;i<=n;i++){
scanf("%d%d%d",&tree[i].num,&tree[i].lch,&tree[i].rch);
if(tree[i].num==x) t=i;
}
zhongxu(1);
return 0;
}