数据结构实验之二叉树二:遍历二叉树
2017-10-29 10:40
344 查看
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<string.h> #include<stdlib.h> #define OVERFLOW -2 #define ERROR -1 #define OK 1 typedef int Statu; typedef char Elemtype; Elemtype str[60]; int i; typedef struct Binode { Elemtype data; struct Binode *lchild, *rchild; }BiTnode, *BiTree; Statu CreatBitree(BiTree &T); // 建树 Statu Inorder(BiTree T); // 中序输出 Statu Post(BiTree T); // 后序输出 int main() { BiTree T; while(gets(str)) { i = 0; CreatBitree(T); Inorder(T); printf("\n"); Post(T); printf("\n"); } return 0; } Statu CreatBitree(BiTree &T) { if(str[i++] == ',') T = NULL; else { T = (BiTree)malloc(sizeof(BiTnode)); T -> data = str[i - 1]; CreatBitree(T -> lchild); CreatBitree(T -> rchild); } return OK; } Statu Inorder(BiTree T) { if(T) { Inorder(T -> lchild); printf("%c", T -> data); Inorder(T -> rchild); } return OK; } Statu Post(BiTree T) { if(T) { Post(T -> lchild); Post(T -> rchild); printf("%c", T -> data); } return OK; }
相关文章推荐
- 3341 数据结构实验之二叉树二:遍历二叉树
- C语言 数据结构之二叉树 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- [SDUT](3341)数据结构实验之二叉树二:遍历二叉树 ---- 二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- SDUT-数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树 oj
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树