zoukankan      html  css  js  c++  java
  • 【例3-5】扩展二叉树

    【例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;
        
    }
  • 相关阅读:
    OpenCV---直方图反向投影
    OpenCV---直方图的应用(均衡化和图像比较)
    ASP.NET WEB SERVICE 创建、部署与使用
    DataSet和DataTable有用的方法
    黑客网站
    局域网中工作组和域之间的差别
    索引使用原则(精)
    C# Web Service 初级教学
    Extjs下拉多选框
    如何在UltraEdit中高亮显示PB代码
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/8017862.html
Copyright © 2011-2022 走看看