zoukankan      html  css  js  c++  java
  • 已知二叉树前序和中序遍历求后续递归

    #include <bits/stdc++.h>
    using namespace std;
    char ss1[30],ss2[30],ss3[30];
    void pro(int l1,int r1,int l2,int r2,int l3,int r3){//递归,l1,r1表示一颗完整的子树在ss1中应占的位置,其他类似,SS1为前序
        ss3[r3] = ss1[l1];
        if(l1 == r1||l2 == r2||l3 == r3) return ;
        for(int i = l2;i <= r2;i++){
            if(ss2[i] == ss1[l1]){
                if(i == l2) pro(l1+1,r1,i+1,r2,l3,r3-1);
                else if(i == r2) pro(l1+1,r1,l2,r2-1,l3,r3-1);
                else{
                    int numl = i - l2,numr =r2 - i;
                    pro(l1+1,l1+i-l2,l2,i-1,l3,i-l2+l3-1);
                    pro(l1+i-l2+1,r1,i+1,r2,i-l2+l3,r3-1);
                }
            }
        }
    }
    int main() {
       // freopen("in.txt","r",stdin);
        while(~scanf("%s",ss1)){
            scanf("%s",ss2);
            int l = strlen(ss1);
            pro(0,l-1,0,l-1,0,l-1);
            for(int  i = 0;i < l;i++) printf("%c",ss3[i]);
            cout<<endl;
        }
        return 0;
    }

    老实说有点虚,不知道是不是对的,不过既然A了就留下来以后再试试,,,

  • 相关阅读:
    机器学习之线性回归
    斯坦福机器学习【5】生成学习算法(高斯判别与朴素贝叶斯)
    网络编程
    正则表达式
    Mysql
    python爬虫
    nginx
    maven基础
    sping入门
    河北省重大技术需求征集八稿第一天
  • 原文地址:https://www.cnblogs.com/shimu/p/8529995.html
Copyright © 2011-2022 走看看