class Tnode:#树的结构定义 def __init__(self, data, left: None, right: None): self.data = data self.left = left self.right = right def tpx(T: Tnode, v):#二叉排序 if T == None: return if v < T.data: if T.left == None: T.left = Tnode(v, None, None) else: tpx(T.left, v) if v > T.data: if T.right == None: T.right = Tnode(v, None, None) else: tpx(T.right, v) #前序、中序、后序输出 def pre(T: Tnode, pr): if not T: return pr.append(T.data) pre(T.left, pr) pre(T.right, pr) def mid(T: Tnode, mi): if not T: return mid(T.left, mi) mi.append(T.data) mid(T.right, mi) def post(T: Tnode, po): if not T: return post(T.left, po) post(T.right, po) po.append(T.data) while True: try: n = int(input()) value = list(map(int, input().split(" "))) T = Tnode(value[0], None, None) for i in range(1, len(value)): tpx(T, value[i]) pr, mi, po = [], [], [] pre(T, pr) mid(T, mi) post(T, po) for i in range(len(mi) - 1): print(pr[i], end=" ") print(pr[len(mi) - 1]) for i in range(len(mi) - 1): print(mi[i], end=" ") print(mi[len(mi) - 1]) for i in range(len(mi) - 1): print(po[i], end=" ") print(po[len(mi) - 1]) except: break