树
def: 从一个根节点出发,通过边的连接到分支节点,再通过边的连接到没有后继的叶子节点
空树:结点数为0的树
非空数:
- 有且仅有一个根节点
- 没有后继节的结点被称为”叶子结点“
- 有后继的结点被称为”分支结点“
- 除了根节点外,每个结点有且仅有一个前驱
- 每个根节点可以由0个或多个后继
DEF: 树是n(n大于等于0)个结点的有限集合,n=0时,是空树,在任意一颗非空树中应满足
- 有且仅有一个根节点
- 当n>1时,其余结点可分为m(>0)个互不相交的有限集合,其中每个集合本身又是一个树,并且称为根节点的子树
树是一种递归定义的数据结构
相关术语
1.结点之间的关系描述:
祖先结点:从某个结点出发一直往上到根节点,经过的所有结点
子孙结点:从一个结点出发他的分支都是他的子孙结点
双亲结点(父节点):一个结点的直接前驱就是他的父节点
孩子结点:一个结点的直接后继
兄弟结点:由同一个结点分支出来的
堂兄弟结点:同一层,不同分支
- 结点之间的路径:只能从上往下且是单向的,即树里的边是有向边
- 路径的长度:经过了几条边
结点,树的属性描述
- 结点的层次(深度):从上往下数,大部分情况从1开始
- 结点的高度:
- 树的高度(深度)
- 结点的度:结点有多少个分支,度>0是非叶子节点,度=0的是叶子结点
- **树的多:**各节点的度的最大值
有序树,无序树
- 有序树:从逻辑上看,树中结点的子树从左至右是有次序的,不能互换
- 无序树:从逻辑上看,树中结点的子树,从左至右是无次序的,可以呼唤
森林:
m棵互不相交的树的集合(m可为0,空森林)
树的常见性质
- 结点数=总度数+1
- 树的度-----各结点的最大值:至少有一个结点度=m,一定是非空树,至少有m+1个结点
- m叉树:允许所有结点的度都<m,且可以是空树
- 度为m的树第i层之多有M的i-1次方个结点
每一层的最大结点数量之和- 具有n个结点的m叉树的最小高度为:
1。高度最小的情况----所有结点都有m个孩子