#include <stdio.h>
typedef struct TreeNode {
char val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
TreeNode* BuildTree(char* str, int* index) {
if (str[*index] == '\0' || str[*index] == '#') {
(*index)++;
return NULL;
}
TreeNode* Node = (TreeNode*)malloc(sizeof(TreeNode));
Node->val = str[*index];
(*index)++;
Node->left = BuildTree(str, index);
Node->right = BuildTree(str, index);
return Node;
}
void Intravel(TreeNode* Tree) {
if (Tree == NULL)
return;
Intravel(Tree->left);
printf("%c ", Tree->val);
Intravel(Tree->right);
}
int main() {
char str[101];
while (scanf("%s", str) != EOF) { // 注意 while 处理多个 case
int index = 0;
TreeNode* Tree = BuildTree(str, &index);
Intravel(Tree);
}
return 0;
}