数据结构实验之二叉树二:遍历二叉树
来源:互联网 发布:柯洁评论黑嘉嘉 知乎 编辑:程序博客网 时间:2024/05/18 13:24
数据结构实验之二叉树二:遍历二叉树
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。
Input
连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。
Output
每组输入数据对应输出2行:
第1行输出中序遍历序列;
第2行输出后序遍历序列。
Example Input
abc,,de,g,,f,,,
Example Out
cbegdfacgefdba
#include <bits/stdc++.h>using namespace std;typedef struct node{ char data; struct node *lchild, *rchild;} BiTNode, *BiTree;char front[110];int i;int CreateBiTree(BiTree &T) //建立二叉树{ char data; data = front[i++]; if(data == ',') { T = NULL; } else { T = (BiTree)malloc(sizeof(BiTNode)); T -> data = data; CreateBiTree(T -> lchild); CreateBiTree(T -> rchild); } return 0;}void mid(BiTree T) //中序遍历{ if(T) { mid(T -> lchild); if(T -> data != ',') cout << T -> data;; mid(T -> rchild); }}void last(BiTree T) //后序遍历{ if(T) { last(T -> lchild); last(T -> rchild); if(T -> data != ',') cout << T -> data; }}int main(){ BiTree T; while(cin >> front) { i = 0; CreateBiTree(T); mid(T); cout << endl; last(T); cout <<endl; } return 0;}
阅读全文
0 0
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- SDUT3341数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 3341数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- glibc源码分析之utime系列函数
- CSDN-markdown基本语法说明
- 1061: 顺序输出各位数字
- Nginx 启动或重启失败原因总结及解决办法
- Angular2 创建与使用Observable
- 数据结构实验之二叉树二:遍历二叉树
- MyBatis的foreach语句详解
- 2017多校6 1003 Inversion
- 排序之冒泡排序
- Spring Boot启动过程源码分析
- Ruby操作MongoDB数据库(进阶十二)--GridFS
- 【POJ3252】 Round Numbers
- Accurate Single Stage Detector Using Recurrent Rolling Convolution
- UVA-10881 Piotr's Ants