三叉链表存储结构比二叉链表存储多了一个指向父节点的引用,虽然增加了空间开销,但是提升的查找的速度。下面是源代码,功能不多,但是可以帮助大家很快理解这种数据结构。
//a simple example to ThreeLinkBinTree
//HanChun at Xidian University
package mywork.c20150611;
public class ThreeLinkBinTree<T> {
public static class TreeNode{
TreeNode left;
TreeNode right;
TreeNode parent;
Object data;
public TreeNode(){
}
public TreeNode(Object data){
this.data = data;
}
/**
* 全部参数构造函数
* @param data 节点处值
* @param parent 待构建节点处的父节点
* @param left 待构建节点处的左节点
* @param right 待构建节点处的右节点
*/
public TreeNode(Object data, TreeNode parent, TreeNode left, TreeNode right){
this.data = data;
this.parent = parent;
this.left = left;
this.right = right;
}
}
TreeNode root; //定义根节点
public ThreeLinkBinTree(){
root