树形结构是数据元素(结点)之间有分治,并且具有层次关系的结构,可用于表示数据元素之间存在的一对多关系。
树(Tree)是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由 n(n>0)
个有限节点组成一个具有层次关系的集合。它具有以下的特点:
基本术语 | 说明 |
---|---|
树结点(Tree Node) | 树中一个独立单元 |
树根(Root) | 树中唯一没有前驱的结点 |
结点的度(Node Degree) | 一个节点含有的子树的个数称为该节点的度 |
树的度(Tree Degree) | 一棵树中,最大的节点度称为树的度 |
叶节点(Leaf) | 度为零的节点 |
非终端节点或分支节点 | 度不为零的节点 |
父节点 | 若一个节点含有子节点,则这个节点称为其子节点的父节点 |
子节点 | 一个节点含有的子树的根节点称为该节点的子节点 |
兄弟节点 | 具有相同父节点的节点互称为兄弟节点 |
节点的层次(Level) | 从根开始定义起,根为第一层,根的子节点为第二层,以此类推 |
深度(Depth) | 对于任意节点 n ,n 的深度为从根到 n 的唯一路径长,根的深度为 0 |
高度 | 对于任意节点 n ,n 的高度为从 n 到一片树叶的最长路径长,所有树叶的高度为 0 |
堂兄弟节点 | 父节点在同层的节点互为堂兄弟 |
节点的祖先 | 从根到该节点所经分支上的所有节点 |
子孙 | 以某节点为根的子树中任一节点都称为该节点的子孙 |
森林(Forest) | 由 m(m>=0) 棵互不相交的树的集合称为森林 |
d(d > 1)
。除了第 d
层外,其他各层的节点树目均已达最大值,且第 d
层所有节点从左向右连续地紧密排列线性结构 | 树结构 |
---|---|
第一个数据元素:无前驱 | 根节点:无双亲,唯一 |
最后一个数据元素:无后继 | 叶节点:无孩子,可以多个 |
中间元素:一个前驱一个后继 | 中间节点:一个双亲多个孩子 |