【暂无】二叉树 二叉树的三种遍历(binary-tree.cpp)
来源:互联网 发布:hl线切割编程系统 编辑:程序博客网 时间:2024/06/07 18:03
二叉树的建立与遍历(binary-tree)
题目描述
给出一棵二叉树,分别输出先序、中序、后序遍历结果。
输入
第1行:结点数n(1<=n<=100)
以下若干行,每行3个整数,分别表示父结点、左孩子、右孩子。若没有孩子,对应的整数为0.
输出
第1行:树根
第2行:先序遍历结果,数字间用1个空格分开。
第3行:中序遍历结果,数字间用1个空格分开。
第4行:后序遍历结果,数字间用1个空格分开。
样例输入
8
1 2 4
2 0 0
4 8 0
3 1 5
5 6 0
6 0 7
8 0 0
7 0 0
样例输出
3
3 1 2 4 8 5 6 7
2 1 8 4 3 6 7 5
2 8 4 1 7 6 5 3
这道题其实很像深搜,但是有三种输出,所以要写三个深搜,至于根节点,就是唯一一个没有父亲的啦~AC代码:
#include<cstdio>struct Tree{int f;int l,r;}tree[105];int n,g,c;void fron(int x){if(c==1){printf(" ");}printf("%d",x);c=1;if(tree[x].l){fron(tree[x].l);}if(tree[x].r){fron(tree[x].r);}}void midd(int x){if(tree[x].l){midd(tree[x].l);}if(c==1){printf(" ");}printf("%d",x);c=1;if(tree[x].r){midd(tree[x].r);}}void back(int x){if(tree[x].l){back(tree[x].l);}if(tree[x].r){back(tree[x].r);}if(c==1){printf(" ");}printf("%d",x);c=1;}int main(){scanf("%d",&n);for(int i=1;i<=n;i++){int a,b,c;scanf("%d %d %d",&a,&b,&c);tree[a].l=b;tree[a].r=c;tree[b].f=tree[c].f=a;}for(int i=1;i<=n;i++){if(tree[i].f==0){g=i;break;}}printf("%d\n",g);fron(g);printf("\n");c=0;midd(g);printf("\n");c=0;back(g);printf("\n");}
1 0
- 【暂无】二叉树 二叉树的三种遍历(binary-tree.cpp)
- 【暂无】 二叉树 根据遍历结果建立二叉树(build-tree.cpp)
- 【暂无】 二叉树 二叉树的计数(count-tree.cpp)
- 二叉树 (Binary Tree)的遍历
- 【暂无】 二叉树 扩展二叉树(add-tree.cpp)
- Binary Tree Paths 二叉树遍历
- Binary Tree Paths (二叉树路径遍历)
- 【LeetCode】Binary Tree Preorder Traversal 二叉树的前序遍历(3种方法)- Easy+
- 二叉树的先序遍历 Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal--二叉树的先序遍历
- Binary Tree Postorder Traversal-二叉树的后序遍历
- Binary Tree Preorder Traversal 二叉树的前序遍历
- Binary Tree Inorder Traversal 二叉树的中序遍历
- Binary Tree Postorder Traversal 二叉树的后序遍历
- 二叉树的中序遍历 Binary Tree Inorder Traversal
- 【二叉树的后续遍历】Binary Tree Postorder Traversal
- 二叉树的后序遍历 Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal 二叉树的后序遍历
- Lucene用法10个小结
- JavaEE----------Servlet
- 【26.34%】【codeforces 722A】Broken Clock
- Codeforces Round 722C:Destroying Array(并查集,好题)
- C# 文件下载四方法
- 【暂无】二叉树 二叉树的三种遍历(binary-tree.cpp)
- SPI总线
- C#集合
- C了个++:02 - C++的名称空间(层次)
- 51单片机 指纹模块 MicroSD卡使用和SPI协议的使用5(2)
- oralce三个常用客户端连接数据库
- 面试编程题:(四)二叉树
- 外存分配的几种方式,及各种优劣
- 爬取本地网页评分大于3的代码