树:
壹——数据的逻辑结构
线性结构:存储的数据元素逻辑结构是一对一的,
即元素的前驱和后继的个数都是唯一的
非线性存储:
1.树形结构 存储的数据元素的逻辑结构是一对N的
即前驱个数唯一,但后继个数不唯一
2.图形结构 存储的数据元素的逻辑结构是M对N的
即前驱和后继的个数都不唯一
贰——树形结构(结点之间有分支,具有层次关系)
自然界 树
人类社会 家谱
行政组织机构
计算机领域 编译:用树表示源程序的语法结构
数据库系统:用树组织消息
算法分析:用书描述执行过程
树的定义(一个递归的定义)
没有元素的树:空树
有元素的数:
有且只有一个特定的成为 根
其余的结点可分为几个互不相交的有限集
其中每一个集合本身又是一棵树,并称为根的子树!
叁——树的基本术语
上下的关系:
结点:
根结点:非空树中无前驱结点的结点
叶子(终端结点):没有后继结点的结点
度:
结点的度:结点的后继、分支或者子树的个数
树的度:树内各结点的度的最大值
孩子与双亲:
定义:结点的子树的根称为该结点的孩子,
该结点称为孩子的双亲
用自己的话就是,这个结点的后继就是这个结点的孩子,
这个后继(孩子)的双亲就是他的前驱
左右的关系:·
兄弟:拥有共同双亲的孩子是兄弟
堂兄弟:双亲在同一层的孩子是堂兄弟
层次的关系:
以根结点所在的位置定义为第一层,以此类推
树的深度(高度):树中结点的最大层次
树的分类:
有序树:每个子树都不同
无序树:每个子树都相同
森林:
若干棵(m>=0)互不相交的树的集合
把根结点删除树就变成了森林
一棵树可以看成是一个特殊的森林
给森林中的各子树加一个双亲结点,森林就变成了树
树一定是森林,森林不一定是树