用数组表示树并通过先序序列和中序序列建树

#include 
#include 
#include 
#include 
#include  
#include 
#include 
#include 

//默认以先序序列编号
using namespace std;
int cnt=0;
char pre[100],mid[100],val[100];  
int lch[100],rch[100];
 
int buildtree(int L1,int R1,int L2,int R2){
    if(L1>R1) return 0;
    char root_val=pre[L1];
    int i=L2;
    while(mid[i]!=root_val) i++;
    int lcnt=i-L2;
    lch[L1]=buildtree(L1+1,L1+lcnt,L2,i-1);
    rch[L1]=buildtree(L1+lcnt+1,R1,i+1,R2);
    return L1;
}

void post(int root){
    if(root==0) return;
    post(lch[root]);
    post(rch[root]);
    cout<

你可能感兴趣的:(用数组表示树并通过先序序列和中序序列建树)