今日题目:新二叉树
题目描述
输入一串二叉树,输出其前序遍历。
输入格式
第一行为二叉树的节点数 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; }