#include <iostream>
using namespace std;
char a[100]={0};
void create(int i)
{
char data;
cin>>data;
if(data!='#')
{
a[i]=data;
create(2*i);//递归创建左节点
create(2*i+1);//递归创建右节点
}
}
int main()
{
create(1);//在数组下标为1的位置上创建二叉树的根节点
for(int i=0;i<100;i++)//遍历存储二叉树的这个数组,如果a[i]存储了二叉树的结点,那么直接输出a[i]
{
if(a[i]>='A'&&a[i]<='Z')
cout<<a[i];
}
return 0;
}
补充:
a[i] = data;//前序
creat(2*i);
creat(2*i+1);
creat(2*i);
a[i] = data;//中序
creat(2*i+1);
creat(2*i);
creat(2*i+1);
a[i] = data;//后序