测试地址:☞
【题目描述】
已知一棵二叉树用邻接表结构存储,中序查找二叉树中值为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【AC代码】
#include<iostream> using namespace std; const int maxn=10010; int n, m, ans=0; struct node{ int num, l, r; }tree[maxn]; void inorder(int x){ if(tree[x].l) inorder(tree[x].l); ans++; if(tree[x].num == m){ cout << ans; return ; } if(tree[x].r) inorder(tree[x].r); } int main(){ cin >> n >> m; for(int i = 1; i <= n; i++) cin >> tree[i].num >> tree[i].l >> tree[i].r; inorder(1); return 0; }
