package binarytreepreorder;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class BinaryTree {
int date;
BinaryTree left;
BinaryTree right;
public BinaryTree(int date){
this.date = date;
this.left = null;
this.right = null;
}
public void insert(BinaryTree root, int date){
if(date < root.date){
if(root.left == null)
root.left = new BinaryTree(date);
else
this.insert(root.left, date);
}
else{
if(root.right == null)
root.right = new BinaryTree(date);
else
this.insert(root.right, date);
}
}
}
public class BinaryTreePreorder {
public static void perOrder(BinaryTree root){
if(null != root){
System.out.print(root.date + "--");
perOrder(root.left);
perOrder(root.right);
}
}
public static void inOrder(BinaryTree root){
if(null != root){
inOrder(root.right);
System.out.print(root.date + "--");
inOrder(root.left);
}
}
public static void postOrder(BinaryTree root){
if(null != root){
postOrder(root.left);
postOrder(root.right);
System.out.print(root.date + "--");
}
}
public static void main(String[] args) {
List array = new ArrayList();
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
while(0 != x){
array.add(x);
x = sc.nextInt();
}
Iterator iterator = array.iterator();
BinaryTree bt = new BinaryTree((int) iterator.next());
while(iterator.hasNext())
bt.insert(bt, (int) iterator.next());
System.out.println("perOrder:");
perOrder(bt);
System.out.println();
System.out.println("inOrder:");
inOrder(bt);
System.out.println();
System.out.println("postOrder:");
postOrder(bt);
System.out.println();
}
}