线性结构:最多一个前驱,最多一个后继
树形结构:最多一个前驱,可以多个后继
图形结构:可以多个前驱,可以多个后继
树的定义
树(Tree)是n(n≥0)个结点的有限集。 若n=0,称为空树; 若n>0,则它满足如下两个条件: ① 有且仅有一个特定的称为根(Root)的结点; ② 其余结点可分为m(m≥0)个互不相交的有限集T1, T2, T3,…Tm,其中每一个集合本身又是一 棵树,并称为根的子树(SubTree)。
树的表示方式
① 倒悬树。使用一棵倒置的树表示树结构,非常直观和形象。
② 嵌套集合。使用集合以及集合的包含关系描述树结构
③ 广义表形式。括号表示法。用一个字符串表示树。
④ 凹入法表示形式。使用线段的伸缩关系描述树结构。
树形结构的用途
树的基本术语
-
结点(node):一个数据元素及其若干指向其子树的分支。(含数据元素值及其逻辑关系信息)
-
根结点:非空树中无前驱结点的结点。
-
结点的度(degree) :结点拥有的子树数。
-
树的度:树内各结点的度的最大值。(通常将度为m的树称为m次树或者m叉树。)
- 叶子(left)结点:树中度为0的结点称为叶子结点(或终端结点)。 -
分支结点:度不为0的结点称为分支结点(或非终端结点或非叶子结点),根结点也是分支节点。除根结点外,分支结点又称为内部结点。
-
孩子结点、双亲结点:一个结点的子树的根称为该结点的孩子结点(child)或子结点;相应地,该结点是其孩子结点的双亲结点(parent)或父结点。
-
结点的层次:树结构的元素之间有明显的层次关系,结点的层次从根开始定义,根结点的层次为1,其孩子结点的层次为2。
-
树的深度:树中叶子结点所在的最大层次,树的深度也称为高度。
-
兄弟结点:同一双亲结点的所有子结点互称为兄弟结点。
-
堂兄弟结点:在同一层,但双亲不同的结点称堂兄弟结点。
-
祖先结点:从根结点到此结点所经分支上的所有结点都是该结点的祖先结点。
-
子孙结点:某一结点的孩子,以及这些孩子的孩子,直到叶结点,都是此结点的子孙结点。
-
路径(从根到结点的):从根到该结点所经分支和结点构成。
-
有序树、无序树:若树中各结点的子树是按照一定的次序从左向右安排的,且相对次序是不能随意变换的,则称为有序树(最左边为第一个孩子),否则称为无序树。
-
森林(forest):是m(m≥0)棵互不相交的树的集合。显然,若将一棵树的根结点删除,剩余的子树就构成了森林。一棵树可以看成是一个特殊的森林。给森林中的各子树加上一个双亲结点,森林就变成了树。树一定是森林,森林不一定是树。