大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题这个月进度是数据结构,让大家练到各种各样的数据结构题目,熟悉数据结构的增删改查,一年以后,蜕变成为一个不一样的自己!
📒博客首页:泡泡的首页
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
❤️ :热爱C/C++与算法学习,云计算等,期待一起交流!
🙏作者水平有限,如果发现错误,求告知,多谢!
👻高校算法学习社区:https://bbs.csdn.net/forums/Suanfa
一起加入刷题内卷大军,还可以加入专属内卷群,里面福利多多大佬多多!
目录
今日题目:新二叉树
题目描述
输入一串二叉树,输出其前序遍历。
输入格式
第一行为二叉树的节点数 n。(1≤n≤26)
后面 nn 行,每一个字母为节点,后两个字母分别为其左右儿子。
空节点用
*
表示输出格式
二叉树的前序遍历。
题目分析
题目难度:⭐️
题目涉及算法:dfs,树形结构。
ps:有能力的小伙伴可以尝试优化自己的代码或者一题多解,这样能综合提升自己的算法能力
题解报告:
1.思路
这题考的是我们二叉树访问顺序,知道前序遍历就能出代码了
2.代码
#include<bits/stdc++.h>
using namespace std;
int n;
char s[100][100];
void dfs(char x)
{
if(x!='*')
{
cout<<x;
for(int i=1;i<=n;i++)
{
if(s[i][0]==x)
{
dfs(s[i][1]);
dfs(s[i][2]);
}
}
}
return ;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>s[i][0]>>s[i][1]>>s[i][2];
}
dfs(s[1][0]);
return 0;
}