首页 > 其他 > 详细

【例3-5】扩展二叉树

时间:2017-12-10 21:12:09      阅读:260      评论:0      收藏:0      [点我收藏+]

【例3-5】扩展二叉树

链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1340
时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

由于先序、中序和后序序列中的任一个都不能唯一确定一棵二叉树,所以对二叉树做如下处理,将二叉树的空结点用·补齐,如图所示。我们把这样处理后的二叉树称为原二叉树的扩展二叉树,扩展二叉树的先序和后序序列能唯一确定其二叉树。

现给出扩展二叉树的先序序列,要求输出其中序和后序序列。技术分享图片

【输入】

扩展二叉树的先序序列。

【输出】

输出其中序和后序序列。

【输入样例】

ABD..EF..G..C..

【输出样例】

DBFEGAC
DFGEBCA
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
typedef struct node;
typedef node *tree;
struct node{
    char data;
    tree l,r,f;
};
tree bt;
int i=-1;
string s;
void build(tree &bt)
{
    
    if(s[++i]!=.)
    {
        bt=new node;
        bt->data=s[i];
    
        build(bt->l);
        build(bt->r);
        
    }
    else bt=NULL;
}
void post(tree bt)
{
    if(bt)
    {
        post(bt->l);
        post(bt->r);
        cout<<bt->data;
    }
}
void mid(tree bt)
{
    if(bt)
    {
        mid(bt->l);
        cout<<bt->data;
        mid(bt->r);
        
    }
}
int main()
{
    
    cin>>s;
    
    build(bt);
    mid(bt);
    cout<<endl;
    post(bt);
    cout<<endl;
    
}

 

【例3-5】扩展二叉树

原文:http://www.cnblogs.com/EdSheeran/p/8017862.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!