SWUST OJ 1053: 输出利用先序遍历创建的二叉树中的指定结点的度 C++实现

题目描述

利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的度。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符“#”时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树中的指定结点的度。注意输入数据序列中的字符“#”和非“#”字符的序列及个数关系,这会最终决定创建的二叉树的形态。

输入

输入用例分2行输入,第一行接受键盘输入的由大写英文字符和“#”字符构成的一个字符串(用于创建对应的二叉树),第二行为指定的结点数据。

输出

#include<bits/stdc++.h>
using namespace std;
char cmp;
int ans = 0;
struct{
	int l, r;
}z[105];
int creat(){
	char ch;
	cin>>ch;
	if(ch=='#') return ch;
	z[ch].l = creat();
	z[ch].r = creat();
	return ch;
}
int main(){
	creat();
	cin>>cmp;
	if(z[cmp].l!='#') ans++;
	if(z[cmp].r!='#') ans++;
	cout<<ans;
	return 0;
}

用一行输出该用例对应的二叉树中指定结点的度。

猜你喜欢

转载自blog.csdn.net/Ljy_Cxy/article/details/131465172