JAVA数据结构与算法之————二叉树
树节点结构:TreeNode
package tree;
public class TreeNode<E> implements Cloneable {
private E data = null;
private TreeNode<E> lChild = null;
private TreeNode<E> rChild = null;
private TreeNode<E> parent = null;
private int depth = 1;
private int balance = 0;
TreeNode() {}
TreeNode(E e) {
this.data = e;
}
// 设置左子树的值
public void setlChild(TreeNode<E> ltn) {
this.lChild = ltn;
}
// 获取左子树的值
public TreeNode<E> getlChild() {
return this.lChild;
}
// 设置右子树的值
public void setrChild(TreeNode<E> rtn) {
this.rChild = rtn;
}
// 获取右子树的值
public TreeNode<E> getrChild() {
return this.rChild;
}
// 设置父母节点
public void setParent(TreeNode<E> ptn) {
this.parent = ptn;
}
// 获取父母节点
public TreeNode<E> getParent() {
return this.parent;
}
// 设置节点值
public void setData(E e) {
this.data = e;
}
// 获取节点值
public E getData() {
return this.data;
}
// 设置节点深度
public void setDepth(int d) {
this.depth = d;
}
// 获取节点深度
public int getDepth() {
return this.depth;
}
// 设置节点平衡因子
public void setBalance(int b) {
this.balance = b;
}
// 获取节点平衡因子
public i