#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
struct TreeNode {
char data;
TreeNode* leftChild;
TreeNode* rightChild;
TreeNode(char c):data(c),leftChild(NULL),rightChild(NULL){}
};
TreeNode* Build(int& position, string str) {
char c = str[position++]; //当前字符
if (c == '#') {
return NULL;
}
TreeNode* root = new TreeNode(c); //创建新结点
root->leftChild = Build(position, str); //创建左子树
root->rightChild = Build(position, str); //创建右子树
return root;
}
void InOrder(TreeNode* root) {
if (root == NULL) {
return;
}
InOrder(root->leftChild);
printf("%c ", root->data);
InOrder(root->rightChild);
return;
}
int main() {
string str;
while (cin >> str) {
int position = 0; //标记字符串处理位置
TreeNode* root = Build(position, str);
InOrder(root);
printf("\n");
}
system("pause");
return EXIT_SUCCESS;
}
// 64 位输出请用 printf("%lld")