一.树的基本元素
1.元素组成:
- 树根:rootNode. 树只有一个树根。
- 节点:Node. 树上的所有节点。
- 子节点数组:Node[]. 数组代表每个节点的所有子节点
- 父节点:parentNode. 每个节点只有一个父节点。
2. Node为Tree中的内部类
- parent :指向父节点的引用
- childern: 孩子数组,存储该节点的所有子节点。
- T 为泛型参数,代表节点应该存储什么类型的数据,是该节点的数据域。
- size: 该节点所有的孩子数目。(孩子数组中所有元素的数目)
3.Tree类(Tree就是对树进行增删改查的实现类,该类内部维护了一个树根节点。)
-
treeRoot:Tree进行维护的一个树根节点。
-
cur:代表当前节点的引用,用于各种方法中,减少空间复杂度。
-
DEFAULT_SIZE:孩子节点数组的默认大小,数值为10.
-
findNodes():该方法返回当前节点的孩子节点数组。
-
find():该方法实现返回树中节点的引用功能,用于遍历树节点并且提供当前操作节点的功能。
-
add():该方法实现对节点的添加,内部调用了find()与addNode()方法实现父类节点的查找与节点数组的动态扩容。
3.实现思路:
代码1:建立一个Tree类。该类内部维护一个顺序树,对外提供基于树的增删改查的方法.该代码是整个树结构的组成单元。
@SuppressWarnings(value = "all")
public class Tree<T> {
// 基于数组的树
//孩子数组默认初始大小
static int DEFAULT_SIZE = 10;
//树根,Tree对象负责维护该对象。
private N