来源:POJ2255
前序中序求后序,递归就好
代码:
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdlib>
using namespace std;
char in[30];
char pre[30];
char post[30];
void solve(int pl,int pr,int il,int ir){
char s=pre[pl];
int k=-1;
while(in[++k]!=s);
if(il<k){
solve(pl+1,pl+k-il,il,k-1);
}
if(ir>k){
solve(pl+k-il+1,pr,k+1,ir);
}
cout<<s;
}
int main(){
while(scanf("%s%s",pre,in)!=EOF){
int len=strlen(pre);
solve(0,len-1,0,len-1);
cout<<endl;
memset(pre,0,sizeof(pre));
memset(in,0,sizeof(in));
}
return 0;
}
本文介绍了一种通过递归方法将二叉树的前序遍历和中序遍历转换为后序遍历的算法实现。使用C++语言进行代码演示,适用于计算机科学中的数据结构与算法学习。
710

被折叠的 条评论
为什么被折叠?



