3 条题解
-
5
模板题啦QWQ
唯二要说的就是题目讲的不太清楚,首先输入的大写字母是节点编号为 的值,不表示节点,输出时根据遍历时的编号把它转换下再输出即可。
第二就是建议输入字符或字符串时不要用
scanf
,建议用cin
,也不要用getchar
之类的,会读到换行符和空格(一次比赛我就是这样出祸的#include <cstdio> #include <iostream> using namespace std; int n; struct Tree{ //树 int l_son , r_son; char x; }tree[30]; void dfs(int x , int flag = 1){ if(!x) return ; //结束递归 if(flag == 1) putchar(tree[x].x); dfs(tree[x].l_son , flag); if(flag == 2) putchar(tree[x].x); dfs(tree[x].r_son , flag); if(flag == 3) putchar(tree[x].x); } int main(void){ cin.tie(0); scanf("%d" , &n); for(int i = 1;i <= n;i++){ //输入 cin >> tree[i].x; scanf("%d%d" , &tree[i].l_son , &tree[i].r_son); } dfs(1); putchar('\n'); dfs(1 , 2); putchar('\n'); dfs(1 , 3); putchar('\n'); }
-
2
本人的方法可能不是最好的方法,仅供参考~~~
#include <iostream>//懒得用万能头~~~ #include <vector>//要用队列数据结构 using namespace std; int n, m; char s1[27]; struct Node//用结构体定义变量 { int fa, l, r; }; tree[15]; void zhong(int p)//递归定义函数(中序遍历) { if (tree[p].l != 0) zhong(tree[p].l); cout << s1[p]; if (tree[p].r != 0) zhong(tree[p].r); } void xian(int p)//递归定义函数(先序遍历) { cout << s1[p]; if (tree[p].l != 0) xian(tree[p].l); if (tree[p].r != 0) xian(tree[p].r); } void hou(int p)//递归定义函数(后序遍历) { if (tree[p].l != 0) hou(tree[p].l); if (tree[p].r != 0) hou(tree[p].r); cout << s1[p]; } int main() { cin >> n; for (int i = 1; i <= n; i++) { int a, b; cin >> s1[i] >> a >> b;//输入数据 tree[i].l = a; tree[i].r = b; tree[a].fa = i; tree[b].fa = i; } xian(1); cout << endl; zhong(1); cout << endl; hou(1); cout << endl; return 0; }
希望对大家有帮助!
-
-6
写题解请注意 鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
- 1
信息
- ID
- 1178
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 147
- 已通过
- 99
- 上传者