//先序a 和中序b 求后序 //已知后序a 中序b 求先序

来源:互联网 发布:电脑软件学校招生 编辑:程序博客网 时间:2024/04/24 05:08
#include<iostream>
#include<string.h>
using namespace std;
char a[30],b[30];
//先序a 和中序b 求后序 
void dg(int r1,int l1,int r2,int l2)
{
int i;
if(r1>l1) return;
for(i=r2;b[i]!=a[r1];i++);
dg(r1+1,l1-l2+i,r2,i-1);
dg(l1-l2+i+1,l1,i+1,l2);
cout<<a[r1];
}
//已知后序a 中序b  求先序 
void fun(int r1, int l1, int r2, int l2)
{
    int i;
    if(r1>l1)
    return;
    putchar(a[l1]);
    for(i=r2;b[i]!=a[l1];++i);
    fun(r1,l1-l2+i-1,r2,i-1);
    fun(l1-l2+i,l1-1,i+1,l2);
}
int main()
{
while(cin>>a>>b)
{
int l=strlen(a);
dg(0,l-1,0,l-1); 
cout<<endl;
}
return 0;
}
阅读全文
1 0