Skip to content

Commit fa1075a

Browse files
committed
其他树review
1 parent e9f9f2f commit fa1075a

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

data-structure/tree/other-tree.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,21 @@ AVL树是高度平衡的而二叉树。它的特点是:AVL树中任何节点
1111
R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。
1212

1313
**红黑树的特性**:
14+
1415
**(1)每个节点或者是黑色,或者是红色。**
16+
1517
**(2)根节点是黑色。**
18+
1619
**(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]**
20+
1721
**(4)如果一个节点是红色的,则它的子节点必须是黑色的。**
22+
1823
**(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。**
1924

2025
**注意**
26+
2127
(01) 特性(3)中的叶子节点,是只为空(NIL或null)的节点。
28+
2229
(02) 特性(5),确保没有一条路径会比其他路径长出俩倍。因而,红黑树是相对是接近平衡的二叉树。
2330

2431
红黑树示意图如下:
@@ -71,8 +78,11 @@ Huffman Tree,中文名是哈夫曼树或霍夫曼树,它是最优二叉树
7178
假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,哈夫曼树的构造规则为:
7279

7380
> **1**. 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);
81+
>
7482
> **2**. 在森林中选出根结点的权值最小的两棵树进行合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;
83+
>
7584
> **3**. 从森林中删除选取的两棵树,并将新树加入森林;
85+
>
7686
> **4**. 重复(02)、(03)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树。
7787
7888
以{5,6,7,8,15}为例,来构造一棵哈夫曼树。

0 commit comments

Comments
 (0)