题意:给出先序遍历和中序遍历,求出后序遍历的结果。
算法没什么,大家手算都是可以的。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string.h>
using namespace std;
void post_order(const char *pre,const char *in,int len) //这里用的静态指针
{
if(len<1)return ;
int i=0;
while(in[i]!=pre[0])i++;
post_order(pre+1,in,i);
post_order(pre+i+1,in+i+1,len-i-1);
cout<<pre[0];
}
int main()
{
string pre,in;
cin>>pre>>in;
post_order(pre.c_str(),in.c_str(),in.size());
} // c_str()返回的是 const char * 不能直接赋值给 char*