为什么要引入树的概念?
因为前面所学到的向量结构和列表结构都不能同时做到在常数时间内的查找和插入,删除。所以引入树的概念去将它们的优点结合起来。
环路是只V(终点)=V(起点)。
节点之间均有路径,称作连通图。不含环路,称作无环图。
从图论的角度看,树等价于连通无环图。因此与一般的图相同,树也由一组顶点(vertex)以及联接与其间的若干条边(edge)组成。在计算机科学中,往往还会在此基础上,再指定某一特定的顶点,并称之为跟(root)。在指定跟节点之后,我们也称之为有根树(rooted tree)。此时,从程序实现的角度,我们也更多地将顶点称作节点(node)。
如果树的节点有n个,那么它有n-1条边。
沿每一个节点v到跟r的唯一通路所经过边的数目,称作v的深度(depth)。约定根节点的深度depth(r)=0,故属于第0层。
所有叶子深度中的最大值称作树的高度(height),记作height(T)。仅含单个节点的树的高度为0,空树高度为-1。