已知二叉树的后序遍历和中序遍历,求出它的前序遍历

与前一个不同的,二叉树的后序遍历的最后一个节点才是根节点,所以此时只需要用后序遍历的最后一个元素为标记,其他与前一篇文章一样,下面是代码。

/* 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);
}