zoukankan      html  css  js  c++  java
  • 已知先序和中序遍历求后续遍历

    #include<bits/stdc++.h>
    using namespace std;
    char a[100010];
    char b[100010];
    char c[100010];
    int cnt;
    void digui(int start,int n,int s,int e){
        char x=a[cnt];
        cnt++;
        if(start==n||s==e||s>e) return;
        c[e]=x;
       // printf("+++%d %d %d %d %d %c
    ",start,n,cnt,s,e,x);
        int ge=s;
        int eend;
        for(int i=start;i<=n;i++){
            if(ge>e) break;
            if(b[i]==x){
                eend=i;
                continue;
            }
           // printf("%d %d %c %c
    ",ge,i,c[ge],b[i]);
            c[ge]=b[i];
            ge++;
        }
       // printf("%s
    ",c);
       // printf("%d
    ",eend);
        int chang=eend-start;
        if(start<=eend-1) digui(start,eend-1,start,eend-1);
        if(eend+1<=n) digui(eend+1,n,eend,e-1);
    }
    int main()
    {
        scanf("%s",a);
        scanf("%s",b);
        int len=strlen (a);
        cnt=0;
        digui(0,len-1,0,len-1);
        printf("%s
    ",c);
        return 0;
    }
    /*
    GDAFEMHZ
    ADEFGHMZ
    */
    /*
    DBACPMZX
    ABCDMPXZ
    */

          这个代码自己瞎写的555,不知道有没有大佬能给指出点问题,这个bug调的我很难受了

          理解起来很简单首先通过前序遍历求得根,然后通过中序遍历求的左子树和右子树,递归下去,因为我是存在数组里的所以很难受,感觉会有很多bug

  • 相关阅读:
    NC 5的开发环境起不了客户端
    NC 6系初始化EJB
    ubuntu安装javaweb
    html 优化
    ubuntu
    jquery
    前端优化
    京东设计中心
    html cookie
    html5 use video camera
  • 原文地址:https://www.cnblogs.com/fzw1523/p/10277552.html
Copyright © 2011-2022 走看看