#include <iostream>
#include <string>
#include <string.h>
using namespace std;
void solve(char *pr,char *in,int length)
{
if(length==0) return ;
char a=*pr;
int index=0;
for(;index<length;index++)
if(in[index]==a) break;
solve(pr+1,in,index);
solve(pr+index+1,in+index+1,length-index-1);
cout<<a;
}
int main()
{
string s1,s2;
char pr[70],in[70];
while(cin>>s1>>s2)
{
strcpy(pr,s1.c_str());
strcpy(in,s2.c_str());
solve(pr,in,s1.length());
cout<<endl;
}
return 0;
}
这道题应该回头看……再想想递归和代码顺序,思考建立树
public static void preorder_traversal(tree t)
{
if (t == null)
return;
else
{
if (t.data != null)
Console.Write(t.data+" ");
preorder_traversal(t.lchild);
preorder_traversal(t.rchild);
}
}