大会员可查看代码,点此开通大会员
#include<bits/stdc++.h>
using namespace std;
typedef struct Node{
char data;
Node *left, *right;
}*BitTree;
void createBitTree(BitTree &node, string s, int *len){
if(s.length() == *len){
node = nullptr;
return;
}
char cur = s[(*len)++];
if(cur=='#'){
node == nullptr;
}else{
node = new Node;
node->data = cur;
node->left = nullptr;
node->right = nullptr;
createBitTree(node->left, s, len);
createBitTree(node->right, s, len);
}
return;
}
void middleOrderTraversal(Node *node){
if(node!=nullptr){
middleOrderTraversal(node->left);
cout<<node->data<<' ';
middleOrderTraversal(node->right);
}
return;
}
int main(){
string s;
while(cin>>s){
int len = 0;
BitTree bitTree;
createBitTree(bitTree, s, &len);
middleOrderTraversal(bitTree);
cout<<endl;
}
return 0;
}