一个重构二叉树的题。。希望哪位大神帮我讲解一下这个程序。。。实在看不懂啊。。。在此谢过了。。。
重构二叉树Description
根据输入的二叉树前序和中序遍历序列重构二叉树,输出对应节点的左右子节点。
输入:
第一行是一个整数N(1<=N<=20),表示有多少个测试例子。以下每个测试例子的第一行是本测试例子的二叉树的前序遍历,第二行是中序遍历,第三行首先是一个整数M,表示要求输出结果的数目,以后有M个节点,每个中间由一个空格隔开。
输出:
每行输出一个例子的所有结果,如果其子节点为空则输出字符#,同一例子的不同节点的输出结果之间用一个空格隔开
Sample Input
1
ABCDEF
CBEDFA
3 A B C
Sample Output
B# CD ##
#include
using namespace std;
char a[100],b[100],s[100][3];
int cases,n,i,lena,lenb,c[100],d[100];
struct haha
{
char c;
int k;
}tree[100];
void insert(char cc,int i)
{
if(c[cc]