输入一串二叉树,输出其前序遍历。
创新互联建站主营浉河网站建设的网络公司,主营网站建设方案,成都app软件开发,浉河h5微信小程序定制开发搭建,浉河网站营销推广欢迎浉河等地区企业咨询原题链接:
P1305 新二叉树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
输入格式第一行为二叉树的节点数 n。(1≤n≤26)
后面 n 行,每一个字母为节点,后两个字母分别为其左右儿子。特别地,数据保证第一行读入的节点必为根节点。
空节点用 * 表示
输出格式二叉树的前序遍历。
输入输出样例输入:
6
abc
bdi
cj*
d**
i**
j**
输出:
abdicj
AC代码#includeusing namespace std;
int n,i,root;
struct da
{
char l;
char r;
}t[27];
void pre(char root) //先序遍历 也叫前序遍历
{
if(root=='*') return ;
cout<>n;
for(i=0;i>a;
cin>>t[a].l >>t[a].r ; //存储~
if(i==0)
root=a; //找到根节点
}
pre(root); //根节点进入per函数进行先序遍历
return 0;
}
思路:
签到题,重点是如何存储二叉树以及二叉树的先序遍历,可以设置一个结构体里面存储该节点的左右孩子(l和r)。题目已知第一个点必为树根,那么我们将树根这个点进入pre函数中,按照根节点--左孩子--右孩子递归的方式,先序输出该二叉树。
注:代码仅供参考,如有错误,请多多指正。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧