巴中建设机械网站,wordpress 连接后台,wordpress公司主题破解版,河北建设信息网官网已知一棵二叉树用邻接表结构存储#xff0c;中序查找二叉树中权值为 x 的结点#xff0c;并指出该结点在中序遍历中的排列位置。 例#xff1a;如图二叉树的数据文件的数据格式如下:
输入格式 第一行包含整数 n#xff0c;表示二叉树的结点数#xff0c;结点编号从 1 到…已知一棵二叉树用邻接表结构存储中序查找二叉树中权值为 x 的结点并指出该结点在中序遍历中的排列位置。 例如图二叉树的数据文件的数据格式如下:
输入格式 第一行包含整数 n表示二叉树的结点数结点编号从 1 到 n。第二行包含整数 x表示要查找的结点的权值。接下来 n 行每行包含三个整数用来描述一个结点。其中的第 i行的第一个整数表示结点 i 的权值第二个整数表示结点 i 的左儿子结点编号为 0 表示它没有左儿子第三个整数表示结点 i 的右儿子结点编号为 0表示它没有右儿子。
输出格式 输出一个整数表示查找的结点在中序遍历中排第几个。
数据范围 1≤n≤100点的权值不超过 100结点 1 为树的根结点数据保证答案唯一。
输入样例 7 15 5 2 3 12 4 5 10 0 0 29 0 0 15 6 7 8 0 0 23 0 0
输出样例 4
#includeiostream
using namespace std;
const int N110;
int w[N],l[N],r[N],mid[N],n,x,k1;
void dfs(int u) //中序遍历
{if(l[u]) dfs(l[u]);mid[k]w[u]; //用mid数组存储中序遍历序列if(r[u]) dfs(r[u]);
}
int main()
{cinn;cinx;for(int i1;in;i){int a,b,c;cinabc;w[i]a,l[i]b,r[i]c;}dfs(1); //从第一个节点遍历for(int i1;in;i)if(mid[i]x)couti;return 0;
}