#include <iostream> using namespace std; struct tnode { int data; tnode* right, *left; tnode() {}; tnode(int x): data(x), left(nullptr), right(nullptr) {}; }; void func_insert(tnode* T, int x) { if (x == T->data) return; else if (x < T->data) { if (T->left == nullptr) { tnode* s = new tnode(x); T->left = s; } else { func_insert(T->left, x); } } else { if (T->right == nullptr) { tnode* s = new tnode(x); T->right = s; } else { func_insert(T->right, x); } } } void func_pre(tnode* T) { if (T == nullptr) return; cout << T->data << " "; func_pre(T->left); func_pre(T->right); } void func_mid(tnode* T) { if (T == nullptr) return; func_mid(T->left); cout << T->data << " "; func_mid(T->right); } void func_post(tnode* T) { if (T == nullptr) return; func_post(T->left); func_post(T->right); cout << T->data << " "; } int main() { int num, x; while (cin >> num) { tnode* T = new tnode(x); for (int i = 0; i < num; i++) { cin >> x; if (i == 0) T->data = x; else { func_insert(T, x); } } //建树完毕 func_pre(T); cout << endl; func_mid(T); cout << endl; func_post(T); cout << endl; } } // 64 位输出请用 printf("%lld")