数据结构实验之二叉树二:遍历二叉树
2017-02-10 17:29
288 查看
Problem Description
已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。Input
连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。Output
每组输入数据对应输出2行:第1行输出中序遍历序列;
第2行输出后序遍历序列。
Example Input
abc,,de,g,,f,,,
Example Output
cbegdfacgefdba
Hint
Author
xam#include<stdio.h> #include<string.h> #include<stdlib.h> #define ElementType char//数据类型选择 struct BinTree { ElementType data; struct BinTree *left; struct BinTree *right; }; ElementType s[55]; int cnt; struct BinTree *creat() { struct BinTree *BT; if(s[++cnt] == ',') { BT = NULL; } else { BT = (struct BinTree *)malloc(sizeof(struct BinTree)); BT->data = s[cnt]; BT->left = creat(); BT->right = creat(); } return BT; } void InOrderTraversal(struct BinTree *BT)//中序遍历 { if(BT) { InOrderTraversal(BT->left); printf("%c",BT->data); InOrderTraversal(BT->right); } } void PostOrderTraversal(struct BinTree *BT)//后序遍历 { if(BT) { PostOrderTraversal(BT->left); PostOrderTraversal(BT->right); printf("%c",BT->data); } } int main() { struct BinTree *BT; while(gets(s)) { cnt = -1; BT = creat(); InOrderTraversal(BT); printf("\n"); PostOrderTraversal(BT); printf("\n"); } return 0; }
相关文章推荐
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树 (sdut OJ 3341)
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树的建立与遍历 【二叉树】
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树