不得不说二叉树很容易把人搞晕,这两天一直在学习探索二叉树。看起来挺简单的内容,实际上实现起来真的不是那么容易,更何况要达到熟练运用就更难了。路漫漫其修远兮。先把实现的内容分享出来吧,明天继续研究。
这部分内容包括:二叉树的实现、前序,中序,后序遍历二叉树的递归算法。后面会继续实现关于树的相关算法。
实现的二叉树结构长这样:
实现二叉树包含三部分代码,分别是二叉树的节点类、二叉树类、创建二叉树及测试。
节点类
package 树;
//二叉树的节点类
public class BinaryNode {
public Object data;
public BinaryNode left;
public BinaryNode right;
//构造一个空节点
public BinaryNode() {
this(null);
}
//构造左右孩子域为空的二叉树
public BinaryNode(Object data){
this(data,null,null);
}
//constructs a branch node with given data,left subtree,right subtree
public BinaryNode(Object data, BinaryNode left, BinaryNode right) {
super();
this.data =