已知二叉树的后序遍历和中序遍历,求出它的前序遍历
与前一个不同的,二叉树的后序遍历的最后一个节点才是根节点,所以此时只需要用后序遍历的最后一个元素为标记,其他与前一篇文章一样,下面是代码。
/* 8 GDAFEMHZ ADEFGHMZ * AEFDHZMG */
#include<iostream>
#include<cstring>
using namespace std;
void binarytree(char a[],char b[],int len)
{
int i;
if (len==0)
return ;
for (i=0;i<len;i++)
{
if (b[i]==*a)
break;
}
binarytree(a+1,b,i);
binarytree(a+i+1,b+i+1,len-i-1);
cout<<a[0];
}
int main()
{
int n;
cin>>n;
char pre[n],mid[n];
scanf("%s %s",pre,mid);
binarytree(pre,mid,n);
}