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

来源:互联网 发布:柯洁评论黑嘉嘉 知乎 编辑:程序博客网 时间:2024/05/18 13:24

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

Time Limit: 1000MS Memory Limit: 65536KB
Problem Description

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

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

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

Example Input

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

Example Out

cbegdfacgefdba
#include <bits/stdc++.h>using namespace std;typedef struct node{    char data;    struct node *lchild, *rchild;} BiTNode, *BiTree;char front[110];int i;int CreateBiTree(BiTree &T)   //建立二叉树{    char data;    data = front[i++];    if(data == ',')    {        T = NULL;    }    else    {        T = (BiTree)malloc(sizeof(BiTNode));        T -> data = data;        CreateBiTree(T -> lchild);        CreateBiTree(T -> rchild);    }    return 0;}void mid(BiTree T)    //中序遍历{    if(T)    {        mid(T -> lchild);        if(T -> data != ',')           cout << T -> data;;        mid(T -> rchild);    }}void last(BiTree T)   //后序遍历{    if(T)    {        last(T -> lchild);        last(T -> rchild);        if(T -> data != ',')           cout << T -> data;    }}int main(){    BiTree T;    while(cin >> front)    {        i = 0;        CreateBiTree(T);        mid(T);        cout << endl;        last(T);        cout <<endl;    }    return 0;}
阅读全文
0 0
原创粉丝点击