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

来源:互联网 发布:iphone4s4g网络补丁 编辑:程序博客网 时间:2024/05/17 08:31
 Statistic

Problem Description

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

Input

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

Output

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

 

Example Input

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

Example Output

cbegdfacgefdba
#include<bits/stdc++.h>using namespace std ;int l = 0 ;char ch[1000] ;struct stu{    int data ;    struct stu *lchild;    struct stu *rchild;};void zhongxu(struct stu *&p){    if(p==NULL)        return ;    zhongxu(p->lchild) ;    printf("%c",p->data);    zhongxu(p->rchild);}void houxu(struct stu *&p){    if(p==NULL)        return ;    houxu(p->lchild);    houxu(p->rchild);    printf("%c",p->data);}void creat(struct stu *&p){    char h = ch[l++] ;    if(h==',')        p = NULL ;    else    {        p = (struct stu *)malloc(sizeof(struct stu));        p -> data = h ;        creat(p->lchild);        creat(p->rchild);    }}int main(){    struct stu *p ;    while(~scanf("%s",ch))    {        l = 0 ;        creat(p);        zhongxu(p);        printf("\n");        houxu(p);        printf("\n");    }    return 0 ;}

0 0
原创粉丝点击