数据结构之树-二叉树(Java版本)
[java]
/**
* 链接二叉树的结点
*/
package 树.二叉树;
public class BinaryTreeNode {
private Object element;//结点元素
private BinaryTreeNode leftChild;//左子树
private BinaryTreeNode rightChild; //右子树
/**
* 无参构造函数
*/
public BinaryTreeNode() {
}
/**
* 指定结点元素的构造函数
* @param theElement
*/
public BinaryTreeNode(Object theElement) {
element = theElement;
}
/**
* 指定结点元素,左孩子,右孩子的构造函数
* @param theElement 结点元素
* @param theleftChild 左孩子
* @param therightChild 右孩子
*/
public BinaryTreeNode(Object theElement, BinaryTreeNode theleftChild,
BinaryTreeNode therightChild) {
element = theElement;
leftChild = theleftChild;
rightChild = therightChild;
}
/**
* 获取当前结点大的左孩子
* @return 当前结点的左孩子
*/
public BinaryTreeNode getLeftChild() {
return leftChild;
}
/**
* 获取当前结点的右孩子
* @return 当前结点的右孩子
*/
public BinaryTreeNode getRightChild() {
return rightChild;
}
/**
* 获取当前结点的元素
* @return 当前结点的元素
*/
public Object getElement() {
return element;
}
/**
* 设置当前结点的左孩子
* @param theLeftChild 当前结点设置后的左孩子
*/
public void setLeftChild(BinaryTreeNode theLeftChild) {
leftChild = theLeftChild;
}
/**
* 设置当前结点 的右孩子
* @param theRightChild 当前结点设置后的右孩子
*/
public void setRightChild(BinaryTreeNode theRightChild) {
rightChild = theRightChild;
}
/**
* 设置当前结点的元素
* @param theElement 当前结点设置后的元素
*/
public void setElement(Object theElement) {
element = theElement;
}
/**
* 打印当前结点元素
*/
public String toString() {
return element.toString();
}
}
[java]
/**
* 数据结构学习之二叉树
* @author Sking
*/
package 树.二叉树;
import java.lang.reflect.*;
public inte易做图ce BinaryTree {//二叉树接口
/**
* 判断二叉树是否为空
* @return 二叉树为空则返回true,否则返回false
*/
public boolean isEmpty();
/**
* 返回二叉树的根
* @return 二叉树的根
*/
public Object root();
/**
* 指定根,左孩子,右孩子创建二叉树
* @param root 根
* @param left 做孩子
* @param right 右孩子
*/
public void makeTree(Object root, Object left, Object right);
/**
* 删除二叉树的左子树并返回
* @return 二叉树的左子树
*/
public BinaryTree removeLeftSubtree();
/**
* 删除二叉树的右子树并返回
* @return 二叉树的右子树
*/
public BinaryTree removeRightSubtree();
/**
* 使用指定的节点访问方法前序遍历二叉树
* @param visit 指定的节点访问方法
*/
public void preOrder(Method visit);
/**
* 使用指定的节点访问方法中序遍历二叉树
* @param visit 指定的节点访问方法
*/
public void inOrder(Method visit);
/**
* 使用指定的节点访问方法后序遍历二叉树
* @param visit 指定的节点访问方法
*/
public void postOrder(Method visit);
/**
* 使用指定的节点访问方法层序遍历二叉树
* @param visit 指定的节点访问方法
*/
public void levelOrder(Method visit);
}
[java]
/**
* 二叉树的遍历类,含有前序,后序,中序,层序遍历
* @author Sking
*/
package 树.二叉树;
import 队列.ArrayQueue;
public class BinaryTreeTraversal {
/**
* 访问指定二叉树结点
* @param t 被访问的二叉树结点
*/
public static void visit(BinaryTreeNode t) {
System.out.print(t.getElement() + " ");
}
补充:软件开发 , Java ,