数据结构实验之二叉树二:遍历二叉树(中序后序遍历)
来源:互联网 发布:迅雷mac版 编辑:程序博客网 时间:2024/06/16 15:33
数据结构实验之二叉树二:遍历二叉树
Time Limit: 1000MS Memory Limit: 65536KB
SubmitStatistic
Problem Description
已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。
Input
连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。
Output
每组输入数据对应输出2行:
第1行输出中序遍历序列;
第2行输出后序遍历序列。
Example Input
abc,,de,g,,f,,,
Example Output
cbegdfa
cgefdba
先序遍历:根 左子树 右子树
中序遍历: 左子树 根 右子树
后序遍历: 左子树 右子树 根
#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;typedef struct BiTNode{ char data; struct BiTNode *Left,*Right;}BiTNode,*BiTree;string s;int cnt;void CreateBiTree(BiTree &T){ char c = s[++cnt]; if(c ==',') T = NULL; else { T = (BiTree)malloc(sizeof(BiTNode)); T->data = c; CreateBiTree(T->Left); CreateBiTree(T->Right); }}void Visit(BiTree T){ if(T->data != '#') cout << T->data;}void PreOrder(BiTree T){ if(T != NULL) { Visit(T); PreOrder(T->Left); PreOrder(T->Right); }}void InOrder(BiTree T){ if(T!=NULL) { InOrder(T->Left); Visit(T); InOrder(T->Right); }}void BackOrder(BiTree T){ if(T!=NULL) { BackOrder(T->Left); BackOrder(T->Right); Visit(T); }}int main(){ BiTree T; while(cin >> s) { cnt = -1; CreateBiTree(T); InOrder(T); cout << endl; BackOrder(T); cout << endl; } return 0;}
阅读全文
0 0
- 数据结构实验之二叉树二:遍历二叉树(中序后序遍历)
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- SDUT3341数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 3341数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 自用java连接数据库,操作数据库模板
- Oracle中夸库查询表数据以及RAW(20),guid.native与c#Guid之间转换知识
- Java基础之JAVA语法—学生成绩
- SDNU OJ 1105 椭圆
- struts2的执行流程
- 数据结构实验之二叉树二:遍历二叉树(中序后序遍历)
- Filebeat 5.x 日志收集器 安装和配置
- JavaScript原型对象和原型链
- redis详解-(11)哨兵案例
- [组合] Codeforces #660E. Different Subsets For All Tuples
- 11月1日笔记
- 学习笔记:ES6新增语法
- java 重命名操作
- 使用Java线程并发库实现两个线程交替打印的线程题