数据结构实验之二叉树二:遍历二叉树

来源:互联网 发布:网络推广公司有哪些 编辑:程序博客网 时间:2024/06/08 16:35

数据结构实验之二叉树二:遍历二叉树

Time Limit: 1000MSMemory Limit: 65536KB
SubmitStatistic

Problem Description

已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。

Input

连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。

Output

每组输入数据对应输出2行:
第1行输出中序遍历序列;
第2行输出后序遍历序列。

Example Input

abc,,de,g,,f,,,

Example Output

cbegdfa
cgefdba
 

#include<stdio.h>#include<malloc.h>#include<string.h>struct node{ char data; struct node *lchild,*rchild;};char a[50];int i;struct node *creat(){ struct node *root; if(a[i++]==',')root=NULL; else {  root=(struct node *)malloc(sizeof(struct node));  root->data=a[i-1];  root->lchild=creat();  root->rchild=creat(); } return root;}void LDR(struct node *root){ if(root) {  LDR(root->lchild);  printf("%c",root->data);  LDR(root->rchild); }}void LRD(struct node *root){ if(root) {  LRD(root->lchild);  LRD(root->rchild);  printf("%c",root->data); }}int main(){ struct node *root; while(gets(a)!=NULL) {  i=0;  root=creat();  LDR(root);  printf("\n");  LRD(root);  printf("\n"); } return 0;}

 

 
0 0
原创粉丝点击