摘要:
在分析Java集合类源码的时候涉及到了树的知识,发现树结构要比数组和链表等要复杂的多,所以巩固和补充一下自己这块的知识。
树(Tree)可以有几种定义。其中一种方式是递归方式。
树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件:
有且仅有一个特定的称为根(Root)的结点;
其余的结点可分为m(m≥0)个互不相交的子集Tl,T2,…,Tm,其中每个子集本身又是一棵树,并称其为根的子树(SubTree)。
从定义中可以看出一棵树是N个节点和N-1条边的结合,其中一个节点叫做根。存在N-1条边是这样得出的:每条边都将某个节点连接到它的父亲,而除去根节点外,每个节点都有一个父亲。
一些树相关的基础定义: 阅读全文