创建一个二叉树
TreeNode.java
public class TreeNode {
private int val;
private TreeNode left;
private TreeNode right;
public void setVal(int val) {
this.val = val;
}
public void setLeft(TreeNode left) {
this.left = left;
}
public void setRight(TreeNode right) {
this.right = right;
}
public int getVal() {
return val;
}
public TreeNode getLeft() {
return left;
}
public TreeNode getRight() {
return right;
}
}
BinaryTree.java
public class BinaryTree {
TreeNode[] btn;
TreeNode root;
int NodeSize;
public BinaryTree(int[] arrayNode) {
super();
NodeSize = arrayNode.length;
btn = new TreeNode[NodeSize];
for(int i=0;i<NodeSize;i++) {
btn[i] = new TreeNode();
btn[i].setVal(arrayNode[i]);
if(i == 0)
root = btn[i];
}
for(int j=0;j<=(NodeSize -2)/2;j++) {
btn[j].setLeft(btn[2*j+1]);
btn[j].setRight(btn[2*j+2]);
}
}
public void preOrder(TreeNode btn) {
TreeNode root = btn;
if(root != null) {
printNode(root);
preOrder(root.getLeft());
preOrder(root.getRight());
}
}
public void inOrder(TreeNode btn) {
TreeNode root = btn;
if(root != null) {
inOrder(root.getLeft());
printNode(root);
inOrder(root.getRight());
}
}
public void postOrder(TreeNode btn) {
TreeNode root = btn;
if(root != null) {
postOrder(root.getLeft());
postOrder(root.getRight());
printNode(root);
}
}
public static void printNode(TreeNode btn) {
System.out.println(btn.getVal());
}
}
Tree.java
public class Tree {
public static void main(String[] args) {
int[] arrayNode = new int[]{1,2,3,4,5,6,7,8,9};
BinaryTree bt = new BinaryTree(arrayNode);
System.out.println("preOrder:");
bt.preOrder(bt.root);
}
}