数据结构实验之二叉树二:遍历二叉树
2015-11-08 11:33
218 查看
数据结构实验之二叉树二:遍历二叉树
Time Limit: 1000MS Memory limit: 65536K
题目描述
已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。输入
连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。输出
每组输入数据对应输出2行:第1行输出中序遍历序列;
第2行输出后序遍历序列;
示例输入
abc,,de,g,,f,,,
示例输出
cbegdfacgefdba
提示
来源
xam示例程序
#include<stdio.h> #include<string.h> #include<stdlib.h> char a[100]; int l1; struct node { int data; struct node *lchild,*rchild; }; struct node *creat() { struct node *root; char c; c=a[l1++]; if(c==',') return NULL; else { root=(struct node *)malloc(sizeof(struct node)); root->data=c; root->lchild=creat(); root->rchild=creat(); } return root; } void zhong(struct node *root) { if(root) { zhong(root->lchild); printf("%c",root->data); zhong(root->rchild); } } void hou(struct node *root) { if(root) { hou(root->lchild); hou(root->rchild); printf("%c",root->data); } } int main() { int i,j,n,m,k,t; struct node *root; while(scanf("%s",a)!=EOF) { l1=0; root=(struct node *)malloc(sizeof(struct node)); root=creat(); zhong(root); printf("\n"); hou(root); printf("\n"); } }
相关文章推荐
- 数据结构实践——操作用邻接表存储的图
- 冒泡排序
- 不相交集合求并的路径压缩
- leetcode 141.Linked List Cycle
- 数据结构实验之二叉树六:哈夫曼编码
- 数据结构学习之双向链表结构
- 不相交集的求并算法(按集合大小求并+按高度求并)
- 不相交集ADT(联机算法 + 脱机算法)
- 树的预备知识
- [刷题丶数据结构]1.栈和队列
- 数据结构基础5.1:树的遍历(递归与非递归实现)
- UVa 210 Concurrency Simulator(双端队列)
- Give Me the Number(将字符串的值变为数)
- 今日学习札记——数据结构基础(11.7)
- 使用后缀表达式写的数据结构实验,实现计算器
- C语言/单片机基础训练之数据结构
- Dijkstra算法
- 数据结构算法总结
- 基本数据结构,二叉排序树
- 数据结构例程——从一个顶点到其余各顶点的最短路径