public class TreeNode {
private TreeNode left, right;
private Object item;
public TreeNode(Object item) {
this(null, null, item);
}
public TreeNode(TreeNode left, TreeNode right, Object item) {
this.left = left;
this.right = right;
this.item = item;
}
public TreeNode getLeft() {
return left;
}
public void setLeft(TreeNode left) {
this.left = left;
}
public TreeNode getRight() {
return right;
}
public void setRight(TreeNode right) {
this.right = right;
}
public Object getItem() {
return item;
}
public void setItem(Object item) {
this.item = item;
}
}
public class ReadNode {
public static void main(String[] args) {
before(getTree());
System.out.println();
after(getTree());
System.out.println();
middle(getTree());
}
<span style="white-space:pre"> </span>//构造一颗二叉树
public static TreeNode getTree() {
TreeNode g = new TreeNode('G');
TreeNode d = new TreeNode(g, null, 'D');
TreeNode e = new TreeNode('E');
TreeNode b = new TreeNode(d, e, 'B');
TreeNode h = new TreeNode('H');
TreeNode f = new TreeNode(null, h, 'F');
TreeNode c = new TreeNode(f, null, 'C');
TreeNode a = new TreeNode(b, c, 'A');
return a;
}
//前序遍历
public static void before(TreeNode treeNode) {
if(treeNode != null){
visitNode(treeNode);
before(treeNode.getLeft());
before(treeNode.getRight());
}
}
//后序遍历
public static void after(TreeNode treeNode) {
if(treeNode != null){
after(treeNode.getLeft());
visitNode(treeNode);
after(treeNode.getRight());
}
}
//中序遍历
public static void middle(TreeNode treeNode) {
if(treeNode != null){
middle(treeNode.getLeft());
middle(treeNode.getRight());
visitNode(treeNode);
}
}
public static void visitNode(TreeNode treeNode) {
System.out.print(treeNode.getItem().toString());
}
}