文章目录
基本概念与基本术语
树的基本概念
-
非空树的特性
- 有且仅有一个根节点
- 没有后继的结点称为“叶子节点”(或终端结点)
- 有后继的结点称为“分支结点”(或非终端结点)
- 除了根节点外,任何一个结点都有且仅有一个前驱
- 每个结点可以有0或多个后继
-
树的概念
树是n(n≥0)个结点的有限集合,n = 0时,称为空树,这是一种特殊情况。在任意一棵非 空树中应满足:
-
有且仅有一个特定的称为根的结点。
-
当n > 1时,其余结点可分为m(m > 0)个互不相交的有限集合T1, T2,…, Tm,其中每个集 合本身又是一棵树,并且称为根结点的子树。
-
-
结点的关系描述
祖先节点 子孙结点 双亲结点 孩子结点
兄弟结点 堂兄弟结点
两个结点之间的路径(只能从上往下)
路径长度是经过几条边
-
结点的属性描述
结点的层次(深度):从上往下数(默认从1开始)
结点的高度:从下往上数
树的高度(深度):总共多少层
结点的度:有几个孩子(分支)
树的度:各结点的度的最大值
-
有序树和无序树
- 有序树:逻辑上看,树中结点的各子树从左至右是有次序的,不能互换
- 无序树:逻辑上看,树中结点的各子树从左至右是无次序的,可以互换
-
树和森林
- 森林是m(m$\geq$0)棵树互不相交的树的集合
- 树和森林的相互转化(后续补充)
树的常考性质
-
结点树 = 总度数 + 1
-
度为m树的树、m叉树的区别
树的度:各结点的度的最大值
m叉树:每个结点最多能有m个孩子的树
度为m的树 m叉树 任意结点的度 ≤ \leq ≤m(最多m个孩子) 任意结点的度 ≤ \leq ≤m(最多m个孩子) 至少有一个结点度=m(有m个孩子) 允许所有结点的度都<m 一定是非空树,至少有m+1个结点 可以是空树 -
度为m的树第i层至多有 m i − 1 m^{i-1} mi−1个结点
m叉树第i层至多有 m i − 1 m^{i-1} mi−1个结点
-
高度为h的m叉树至多有 m h − 1 m − 1 \frac{m^h-1}{m-1} m−1mh−1个结点
-
高度为h的m叉树至少有h个结点
高度为h、度为m的树至少有h+m-1个结点
-
具有n个结点的m叉树的最小高度为 ⌈ l o g m [ n ( m − 1 ) + 1 ] ⌉ \lceil log_m[n(m-1)+1] \rceil ⌈logm[n(m−1)+1]⌉
二叉树定义与基本术语
基本概念
二叉树是n(n$\geq$0)个结点的有限集合
- 或者为空二叉树,即n=0.
- 或者由一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一棵二叉树。
特点:
- 每个结点至多有两棵子树
- 左右子树不能颠倒(二叉树是有序树)
二叉树的状态
特殊的二叉树
满二叉树
-
定义图解
一棵高度为h, 且含有 2 h − 1 2^h-1 2h−1个结点的二叉树
-
特点
- 只有一层有叶子结点
- 不存在度为1的结点
- 按层序从1开始编号,结点为i的左孩子为2i,右孩子为2i+1;结点i的父结点为 ⌊ i / 2 ⌋ \lfloor i/2\rfloor ⌊i/2⌋(如果有的话)</