二叉树的遍历方法有先根遍历、中根遍历、后根遍历以及层次遍历。这里列出了二叉树的先根、中根、后根遍历的递归实现以及层次遍历的非递归实现。
我这里用到的是二叉链式结构。话不多说,直接上代码
二叉链式存储结构的结点类描述:
package tree;
public class BiTreeNode {
public Object data;
public BiTreeNode lchild,rchild; //左右孩子域
//构造一个空节点
public BiTreeNode() {
this(null);
}
//构造一颗左、右孩子域为空的二叉树
public BiTreeNode(Object data) {
this(data,null,null);
}
//构造一棵数据域和左、右孩子域都不为空的二叉树
public BiTreeNode(Object data,BiTreeNode lchild,BiTreeNode rchild) {
this.data=data;
this.lchild=lchild;
this.rchild=rchild;
}
}
二叉链式存储结构下二叉树类的描述:
package tree;
import java.util.LinkedList;
import java.util.Queue;
public class BiTree {
public BiTreeNode root; //树的根节点