#include<iostream>
#include<string>
using namespace std;
struct node
{
char gen;
char l, r;
}arr[1000];
void dfs(char cc)
{
cout << cc;
if (arr[cc].l != '*')
dfs(arr[cc].l);
if (arr[cc].r != '*')
dfs(arr[cc].r);
}
int main()
{
int n;
cin >> n;
int i;
char dir,c;
for (i = 0; i < n; i++)
{
cin >> c;
if (i == 0)
dir = c;
cin >> arr[c].l >> arr[c].r;
arr[arr[c].l].gen = arr[arr[c].r].gen = c;
}
dfs(dir);
}
这道题就是涉及到了怎么样创建一个字符二叉树,将字符的ASCII值作为数组中的下标作为索引将每个节点给连起来形成一个树,所以这里数组的内存要开大点。