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

来源:互联网 发布:mac双系统 文件 编辑:程序博客网 时间:2024/06/06 01:15

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

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic

Problem Description

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

Input

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

Output

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

 

Example Input

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

Example Output

cbegdfacgefdba





#include <iostream>
#include <string>


using namespace std;


typedef struct Tree
{
    struct Tree *left;
    struct Tree *right;
    char data;
}*P;


string ch;
int count;


void Creat(P &t)
{
    if(ch[count++]==',')
    {
        t=NULL;
    }
    else
    {
        t=new Tree;
        t->data=ch[count-1];
        Creat(t->left);
        Creat(t->right);
    }
}


void Inorder(P &t)
{
    if(t)
    {
        Inorder(t->left);
        cout<<t->data;
        Inorder(t->right);
    }
}


void Postorder(P &t)
{
    if(t)
    {
        Inorder(t->left);
        Inorder(t->right);
        cout<<t->data;
    }
}


int main()
{
    P t;
    while(cin>>ch)
    {
        count=0;
        Creat(t);
        Inorder(t);
        cout<<endl;
        Postorder(t);
        cout<<endl;
    }
    return 0;
}




typedef struct Tree

{

}*P;//正确


struct Tree
{

}*P;//错误
阅读全文
0 0
原创粉丝点击