数据结构(知识点碎片十二)

146 阅读2分钟

十二、树和二叉树

(一)、树的基本概念

树(tree)是由n(n≥0)个结点(或元素)组成的有限限集合(记为T)。
如果n=0,它是一棵空树,这是树的特例;
如果n>0,这n个结点中有且仅有一个结点作为树的根结点,简称为根(root),其余结点可分为m(m≥0)个互不相交的有限集 T、,Tz,…,Tm,其中每个子集本身又是一棵符合本定义的树,称为根结点的子树(subt ree)。

1. 树的逻辑表示方法

  • 树形表示法:使用一棵倒置的树表示树结构,非常直观形象。
  • 文氏图表示法:使用集合以及集合的包含关系描述树结构。
  • 凹入表示法:使用线段的伸缩关系描述树结构。
  • 括号表示法:用一个字符串表示树。

2. 树的基本术语

  • 结点的度与树的度

树中某个结点的子树的个数称为该结点的度(degree of node)。树中所有结点的度中的最大值称为树的度(degree of tree),通常将度为m的树称为m次树(m-tree)。

  • 分支结点与叶子结点

树中度不为零的结点称为非终端结点,又叫分支结点(branch)。度为零的结点称为叶子结点(leaf)。在分支结点中,每个结点的分支数就是该结点的度。如对于度为1的结点,其分支数为1,被称为单分支结点;对于度为2的结点,其分支数为2,被称为双分支结点,依此类推。

  • 路径与路径长度

对于树中的任意两个结点ki和kj,若树中存在一个结点序列 (ki,.ki1,ki2....kin,kj),使得序列中除ki以外的任一结点都是其在序列中的前一个结点的后继结点,则称该结点序列为由ki到kj的一条路径(path).路径长度(path length)是该径所通过的结点数目减1(即路径上分支数目)。可见,路径就是从ki出发“自上而下”到达 kj 所通过的树中结点序列。显然,从树的根结点到树中其余结点均存在一条路径。

  • 孩子结点、双亲结点和兄弟结点

在一棵树中,每个结点的后继结点被称为该结点的孩子结点(children)。相应地,该结点被称为孩子结点的双亲结点(parents)。具有同一双亲结点的孩子结点互为兄弟结点(sibling)。进一步推广这些关系,可以把每个结点对应子树中的所有结点(除自身外)称为该结点的子孙结点(descendant),把从根结点到达某个结点的路径上经过的所有结点(除自身外)称为该结点的祖先结点(ancestor)。