zoukankan      html  css  js  c++  java
  • 求先序排列(二叉树已知中序和后序,求先序)

    问题 A: [2001_p3]求先序排列

    时间限制: 1 Sec  内存限制: 125 MB
    提交: 90  解决: 73

    题目描述

    给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。

    输入

    每个测试文件只包含一组测试数据,每组输入包含两行,第一行输入一个字符串表示二叉树的中序排列,第二行输入一个字符串表示二叉树的后序排列。

    输出

    对于每组输入数据,输出二叉树的先序排列。

    样例输入

    BADC
    BDCA

    样例输出

    ABCD

    提示

    #include<iostream>
    #include<bits/stdc++.h>
    using namespace std;
    string s1,s2;
    void print(int l1,int r1,int l2,int r2)
    {
        //cout<<" "<<l1<<" "<<r1<<" "<<l2<<" "<<r2<<endl;
        /*if(r1<=l1)
        {
            cout<<s1[l1];
            return;
        }
        if(r2<=l1)
        {
            cout<<s2[l1];
            return;
        }*/
        int k=-1;
        for(int i=l1;i<r1;i++)
        {
            if(s1[i]==s2[r2-1])
            {
                cout<<s1[i];
                k=i;
                break;
            }
        }
        //cout<<"k "<<k<<endl;
        if(k>l1)
        {
            //cout<<"进入左"<<endl;
            print(l1,k,l2,k-l1+l2);
        }
        if(r1>k+1)
        {
            //cout<<"进入右"<<endl;
            print(k+1,r1,k-l1+l2,r2-1); 
        }
        
     } 
    int main()
    {
        cin>>s1>>s2;
        print(0,s1.length(),0,s2.length());
        return 0;
     } 
     
    [提交][状态][Edit] [TestData]
  • 相关阅读:
    JavaScript 的 Promise
    MacOS copy图标shell脚本
    ExtJS 修改load paging时的参数
    JSONP
    8种跨域解决方案
    Ext Store Proxy Ajax
    ExtJS 自定义组件
    MacOS Apache配置
    xshell 上传 下载文件
    shell 内网主机存活探测器
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/10773219.html
Copyright © 2011-2022 走看看