3341数据结构实验之二叉树二:遍历二叉树
来源:互联网 发布:美国宝宝的好处知乎 编辑:程序博客网 时间:2024/05/18 07:29
数据结构实验之二叉树二:遍历二叉树
Problem Description
已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。
Input
连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。
Output
每组输入数据对应输出2行:
第1行输出中序遍历序列;
第2行输出后序遍历序列。
Example Input
abc,,de,g,,f,,,
Example Output
cbegdfacgefdba
代码
#include <stdio.h>#include <stdlib.h>char str[51];int i;typedef struct BiTNode{ int data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;BiTree CreateBiTree(BiTree T){ char temp; temp=str[i++]; if(temp==',') T=NULL; else{ T=(BiTree)malloc(sizeof(BiTNode)); T->data=temp; T->lchild=CreateBiTree(T->lchild); T->rchild=CreateBiTree(T->rchild); } return T;}void InOrderTraverse(BiTree T){ if(!T) return; else{ InOrderTraverse(T->lchild);//递归遍历左子树 printf("%c",T->data);//访问根节点 InOrderTraverse(T->rchild);//递归遍历右子树 }}void PostOrderTraverse(BiTree T){ if(!T) return; else{ PostOrderTraverse(T->lchild);//递归遍历左子树 PostOrderTraverse(T->rchild);//递归遍历右子树 printf("%c",T->data);//访问根节点 }}int main(){ while(~scanf("%s",str)) { BiTree T; T=(BiTree)malloc(sizeof(BiTNode)); i=0; T=CreateBiTree(T); InOrderTraverse(T); printf("\n"); PostOrderTraverse(T); printf("\n"); } return 0;}
阅读全文
0 0
- 3341数据结构实验之二叉树二:遍历二叉树
- 3341 数据结构实验之二叉树二:遍历二叉树
- 3341数据结构实验之二叉树二:遍历二叉树
- 3341 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- SDUT3341数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- linux的一个错误 FAT: utf8 is not a recommended IO AND kernel panic
- supergeek的技术博客大纲
- 手把手教你搭建BP神经网络——实践篇
- 153. Find Minimum in Rotated Sorted Array
- 了解下sass和less的区别
- 3341数据结构实验之二叉树二:遍历二叉树
- 浅谈回溯与深度优先搜索
- 获取SpringMvc对应的子容器
- 基于Flume的美团日志收集系统
- POJ1003算法解析
- spring boot 配置文件(application.yml)中的属性值配置
- 时间复杂度的计算
- 自动生成.gitignore文件
- Netflix Conductor微服务编排平台基于docker容器化安装步骤