二叉树的链式实现
相关术语: 平衡树,非平衡树,完全数,满树。 实现策略: 1)数组实现 这个还是非常重要的,有时间写一下,先用链来写 元素n的(从0开始按层编号)左子树编号为2n+1,右子树编号为2n+2,数学证明就略了,用这个来控制下标 2)模拟链式实现 3)链式实现 树是一种非线性结构,那么跟前不一样,必须根据你的需求 来构造新的节点才能满足树中的节点特征 : package Tree;public class BinaryTreeNode { protected Object element; protected BinaryTreeNode left,right; public BinaryTreeNode(Object element)//用元素来构造一个结点 { this.element = element; left = null; right = null; } public int numChildren(){//返回结点的子树上结点的个数 int count = 0; if(left != null) count = 1 + left.numChildren(); if(right != null) count = count + 1 + right.numChildren(); return count; } } 下面是一个实现了一些基本操作的二叉树的ADT