#include <bits/stdc++.h> using namespace std; typedef struct BiTNode { int data; struct BiTNode* lchild, *rchild; } BiTNode, *BiTree; void Create(BiTree& T, int n) { if (T == NULL) { T = (BiTNode*)malloc(sizeof(BiTNode)); T->data = n; T->lchild = T->rchild = NULL; } else if (T->data == n) return; else if (T->data < n) Create(T->rchild, n); else Create(T->lchild, n); } void inorder(BiTree T) { if (T == NULL) return; inorder(T->lchild); cout << T->data << " "; inorder(T->rchild); } void preorder(BiTree T) { if (T == NULL) return; cout << T->data << " "; preorder(T->lchild); preorder(T->rchild); } void postorder(BiTree T) { if (T == NULL) return; postorder(T->lchild); postorder(T->rchild); cout << T->data << " "; } int main() { BiTree T; int n, data; while (cin >> n) { T = NULL; for (int i = 0; i < n; i++) { cin >> data; Create(T, data); } preorder(T); cout << endl; inorder(T); cout << endl; postorder(T); cout << endl; } }