之前学的都是线性逻辑结构,接下来学习非线性逻辑结构
线性结构中结点间具有惟一前驱、惟一后继的关系
非线性结构中结点间的前驱后继关系不具有惟一性
在树型结构当中,结点间是前驱惟一,后继不惟一,结点间是一对多的关系
在图结构当中,结点间的前驱和后继关系均不惟一,结点间是多对多的关系
树结构的用途:文件系统、编译系统、目录组织等方面
1.树的定义及其基本术语
- (1)树的基本概念
树:n个结点的有限集合(n>=0),n=0位空树
n>0时,有一个为根的特定结点,没有直接前驱,但是有0个或多个直接后继
剩下的n-1个结点可以划分为多个互不相交的有限集合
其中每一个集合也是一个树,是根root的子树,每个子树的根结点有且只有一个直接前驱,有0个或多个直接后继
树的逻辑结构图如同一棵倒挂的树 - (2)树的图解表示法
倒置树结构(树型表示法)
文氏图表示法(嵌套集合形式)
广义表形式(嵌套括号表示法)
凹入表示法
- (3)树的相关术语
结点:包含一个数据元素及若干指向其他结点的分支信息
结点的度:一个结点的子树个数
叶结点:度为0的结点,没有后继的结点,终端结点
分支结点:度不为0的结点,非终端结点
结点的层次:根结点的层次为1,依次类推
结点的层序编号:从上到下、从左到右,依次编号
树的度:树中的所有结点的度的最大值
树的高度(深度):树中所有结点的层次的最大值
有序树:子序之间有先后顺序
森林:多棵互不相交的树的集合
注意:将一棵非空树的根结点去掉,树就变成一个森林;给森林增加一个统一的根结点,森林就会变成树
同构:对两棵树通过适当的重命名,就可以使两棵树完全相等
孩子结点:一个结点的直接后继称为该结点的孩子结点
双亲结点:一个结点的直接前驱称为该结点的双亲结点
兄弟结点