zoukankan      html  css  js  c++  java
  • c语言-给出前序遍历与中序遍历输出后序遍历

    c语言-给出前序遍历与中序遍历输出后序遍历

    c语言-给出前序遍历与中序遍历输出后序遍历
    #include<stdio.h>
    int post[7],in[7],pre[7];
    
    void solve(int preL,int inL,int postL,int n){
        int root,i,R,L;
         
        if(n==0){
            return ;
        }
        if(n==1){
            post[postL] = pre[preL];
            return ;
        }
        
        root = pre[preL];
        post[postL+n-1] = root;
        for(i=0;i<n;i++){
            if(in[inL+i] == root){
                break;
            }
        }
        L=i;
        R=n-L-1;
        solve(preL+1,inL,postL,L);
        solve(preL+L+1,inL+L+1,postL+L,R);
        
    }
    
    int main(){
        int n;
            
        scanf("%d",&n);
        printf("请输入前序顺序:
    ");
        for(int i=0;i<n;i++){
            scanf("%d",&pre[i]);
        }
        
        printf("请输入中序顺序:
    "); 
        
        for(int i=0;i<n;i++){
            scanf("%d",&in[i]);
        }
        
        solve(0,0,0,n);
        
        printf("后序遍历的顺序为:
    ");
        for(int i=0;i<n;i++){
            printf("%d ",post[i]);
        }
        
        return 0;
    }
    非学无以广才,非志无以成学。 正是因为今天的不完美,才对未来充满希望。 ----长帆
  • 相关阅读:
    洛谷P4547 [THUWC2017]随机二分图
    洛谷P4590 [TJOI2018]游园会
    洛谷P4099 [HEOI2013]SAO
    #4719. 内凸包
    #1612. 天平(scales)
    #3164. 「CEOI2019」立方填词
    #4728. 问题求解
    #2754. Count(count)
    sa模板
    bzoj 2553: [BeiJing2011]禁忌
  • 原文地址:https://www.cnblogs.com/changfan/p/11893092.html
Copyright © 2011-2022 走看看