#include <iostream> using namespace std; int pos; string str; struct Node { char data; Node * leftT; Node * rightT; Node(char c) : data(c), leftT(NULL), rightT(NULL){} }; Node * buildTree(){ char c = str[pos ++]; if(c == '#') return NULL; //先序遍历(根、左、右) Node * node = new Node(c); node->leftT = buildTree(); node->rightT = buildTree(); return node; } //中序遍历 void midOrder(Node * node){ if (node == NULL) { return; } midOrder(node->leftT); cout << node->data << ' '; midOrder(node->rightT); } int main() { while (cin >> str) { pos = 0; Node * root = buildTree(); midOrder(root); } return 0; }