import java.util.Scanner;
public class BinaryTree {
private static Node root=null;
private class Node{
Node left;
Node right;
int value;
public Node(int value){
this.value=value;
left = null;
right = null;
}
}
//先序遍历构造二叉树
public Node createTree(Node node){
Scanner in = new Scanner(System.in);
int value = in.nextInt();
if(value==-1){
return null;
}else{
node = new Node(value);
node.left=createTree(node.left);
node.right=createTree(node.right);
return node;
}
}
//前序遍历
public void preOrder(Node node){
if(node==null)
return ;
System.out.print(node.value+" ");
preOrder(node.left);
preOrder(node.right);
}
//中序遍历
public void InOrder(Node node){
if(node==null)
return ;
InOrder(node.left);
System.out.print(node.value+" ");
InOrder(node.right);
}
public void PostOrder(Node node){
if(node == null){
return ;
}
PostOrder(node.left);
PostOrder(node.right);
System.out.print(node.value+" ");
}
public static void main(String[] args) {
root = new BinaryTree().createTree(root);
System.out.println("\n前序遍历为:");
new BinaryTree().preOrder( root);
System.out.println("\n中序遍历为:");
new BinaryTree().InOrder(root);
System.out.println("\n后序遍历为");
new BinaryTree().PostOrder(root);
}
}
输入:
1
2
-1
-1
3
-1
-1
输出:
前序遍历为:
1 2 3
中序遍历为:
2 1 3
后序遍历为
2 3 1