大会员可查看代码,点此开通大会员
#include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<string>
#include<cstring>
#include<string.h>
using namespace std;
char s[100001];
int num=0;
typedef struct node{
char data;
struct node *lchild,*rchild;
}*BitTree;
//创建二叉树
void create(BitTree &t){
//cout<<strlen(s)<<endl;
char c;
if(num==strlen(s)) return;
c=s[num++];
if(c=='#') t=NULL;
else{
t=new node;
t->data=c;
t->lchild=NULL;
t->rchild=NULL;
create(t->lchild);
create(t->rchild);
}
}
//先序
void PreOrder(BitTree &t){
if(t!=NULL){
cout<<t->data<<' ';
PreOrder(t->lchild);
PreOrder(t->rchild);
}
}
//中序
void InOrder(BitTree &t){
if(t!=NULL){
InOrder(t->lchild);
cout<<t->data<<' ';
InOrder(t->rchild);
}
}
//后序
void PostOrder(BitTree &t){
if(t!=NULL){
PostOrder(t->lchild);
PostOrder(t->rchild);
cout<<t->data<<' ';
}
}
int Leaf(BitTree t){
if(t==NULL) return 0;
if(t->lchild==NULL&&t->rchild==NULL) return 1;
return Leaf(t->lchild)+Leaf(t->rchild);
}
int main(){
while(cin>>s){
num=0;
BitTree t;
create(t);
InOrder(t);
cout<<endl;
}
}