#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
struct tree1
{
char data;
struct tree1 *left;
struct tree1 *right;
};
typedef struct tree1 *tree;
struct tree2
{
tree a[50];
int frist;
int end;
};
typedef struct tree2 *dui;
void creattree(tree &X)
{
char k;
cin>>k;
if(k=='#')
X=NULL;
else
{
X=(tree)malloc(sizeof(tree));
X->data=k;
creattree(X->left);
creattree(X->right);
}
}
void creatdui(dui &Q)
{
Q=(dui )malloc(sizeof(struct tree2));
Q->frist=0;
Q->end=0;
}
void indui(dui Q,tree X)
{
Q->a[Q->end]=X;
Q->end++;
}
int jugdement(dui Q)
{
if(Q->end==Q->frist)
return 1;
else
return 0;
}
tree outdui(dui Q)
{
tree p=Q->a[Q->frist++];
return p;
}
void bianli(tree X)
{
dui Q=NULL;
creatdui(Q);
tree p1=NULL;
indui(Q,X);
while(jugdement(Q)!=1)
{
p1=outdui(Q);
cout<<p1->data;
if(p1->left!=NULL)
indui(Q,p1->left);
if(p1->right!=NULL)
indui(Q,p1->right);
}
}
int main()
{
tree X;
creattree(X);
bianli(X);
return 0;
}