查找二叉树

    科技2022-08-29  129

    测试地址:

    【题目描述】

    已知一棵二叉树用邻接表结构存储,中序查找二叉树中值为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; }

     

    Processed: 0.010, SQL: 10