二叉树的创建与遍历(递归创建与遍历)
代码如下:
建立的同时就记录:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<ctime>
#include<fstream>
#include<climits>
using namespace std;
void build(int n, char* s, char* t, char* a)
{
if(n <= 0)
return ;
int p = strchr(t, s[0]) - t;
build(p, s + 1, t, a);
build(n - p - 1, s + 1 + p, t + 1 + p, a + p);
a[n - 1] = s[0];
}
int main()
{
int n;
char s1[30], s2[30], ans[30];
while(scanf("%s%s", s1, s2) == 2)
{
n = strlen(s1);
build(n, s1, s2, ans);
ans[n] = '\0';
printf("%s\n", ans);
}
}