• 求先序排列(二叉树已知中序和后序,求先序)


    求先序排列(二叉树已知中序和后序,求先序)

    问题 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]
  • 相关阅读:
    jquery插件layer
    获取订单的product_id 和订单的数量
    Python psutil模块
    Linuc bazaar命令
    分布式版本控制系统
    launchpad, jira, github
    C/C++ 经典面试题汇总
    Windows Cmder
    Reddit指南
    Linux xclip命令
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13270782.html
Copyright © 2020-2023  润新知