@@ -314,7 +314,7 @@ typedef struct {
314314 用固定大小的块链表存储,适合大串操作
315315
316316!!! tip "参考实现"
317- C语言具体实现可参考 ` 技术/ cpp/cpp_basic.md`
317+ C语言具体实现可参考[ cpp ] ( ../../Tech/ cpp/cpp_basic.md)
318318
319319### 4.3 KMP算法
320320
@@ -387,8 +387,79 @@ typedef struct {
387387
388388## ch5. 树与二叉树
389389
390- !!! todo "待完善内容"
391- 树的基本概念、二叉树的性质与存储、遍历算法、线索二叉树、树与森林、哈夫曼树等
390+ ### 5.1 树的基本概念
391+
392+ !!! abstract "树的定义"
393+ 树是一个非线性数据结构,由结点和边组成,满足以下性质:
394+
395+ - 有且仅有一个** 根结点**
396+ - 当n>1时,其余结点可分为m(m>0)个互不相交的有限集T₁,T₂,...,Tₘ,称为根的** 子树**
397+
398+ !!! important "树的特点"
399+ 1. 树的根节点没有前驱,除根节点外的所有结点有且只有一个前驱
400+ 2. 每个结点有0个或多个后继结点
401+ 3. 在n个结点的树中,有且仅有n-1条边
402+
403+ #### 基本术语
404+
405+ !!! note "结点关系术语"
406+ - ** 祖先(ancestor)** :从根到该结点路径上的所有结点
407+ - ** 子孙(descendant)** :以该结点为根的子树中的所有结点
408+ - ** 兄弟(sibling)** :具有相同双亲的结点
409+ - ** 堂兄弟(cousin)** :双亲在同一层的结点
410+
411+ !!! note "结点分类术语"
412+ - ** 结点的度** :树的一个结点的孩子个数
413+ - ** 树的度** :树中结点的最大度数
414+ - ** 分支结点(branch node)** :又叫非终端结点,度大于0的结点
415+ - ** 叶结点(leaf node)** :度为0的结点,又称终端结点
416+
417+ !!! note "层次相关术语"
418+ | 术语 | 定义 | 说明 |
419+ |------|------|------|
420+ | ** 结点的层次** | 根结点为第1层,其子结点为第2层... | 从1开始计数 |
421+ | ** 结点的深度** | 从根结点到该结点的路径长度 | 根结点深度为0 |
422+ | ** 结点的高度** | 以该结点为根的子树的高度 | 叶结点高度为0 |
423+ | ** 树的高度** | 树中结点的最大层数 | 等于根结点的高度+1 |
424+
425+ !!! note "其他重要术语"
426+ - ** 有序树** :结点的子树从左到右有顺序,不能交换
427+ - ** 无序树** :结点的子树没有顺序要求
428+ - ** 路径** :从一个结点到另一个结点经过的结点序列
429+ - ** 路径长度** :路径上边的个数
430+ - ** 森林** :m(m≥0)棵互不相交的树的集合
431+
432+ #### 树的性质
433+
434+ !!! tip "树的重要性质"
435+
436+ ** 性质1:** 结点数与边数关系
437+
438+ 树中结点数 = 所有结点的度数之和 + 1
439+
440+ ** 性质2:** m叉树第i层结点数上界
441+
442+ 度为m的树中第i层至多有 $m^{i-1}$ 个结点(i≥1)
443+
444+ ** 性质3:** m叉树结点总数上界
445+
446+ 高度为h的m叉树至多有 $\frac{m^h - 1}{m - 1}$ 个结点
447+
448+ !!! warning "高度计算公式"
449+ ** 性质4:** m叉树最小高度
450+
451+ 度为m、具有n个结点的树的最小高度为:
452+ $$ h = \lceil \log_m(n(m-1)+1) \rceil $$
453+
454+ ** 性质5:** m叉树最大高度
455+
456+ 度为m、具有n个结点的树的最大高度为:$h = n - m + 1$
457+
458+ !!! example "性质应用举例"
459+ 对于一棵有100个结点的三叉树:
460+
461+ - 最小高度:$h = \lceil \log_3(100 \times 2 + 1) \rceil = \lceil \log_3(201) \rceil = 5$
462+ - 最大高度:$h = 100 - 3 + 1 = 98$
392463
393464## ch6. 图
394465
0 commit comments