mirror of
https://github.com/huihut/interview.git
synced 2024-03-22 13:10:48 +08:00
更新二叉树
This commit is contained in:
parent
f9e6dcc940
commit
4fd2b0fd97
60
README.md
60
README.md
|
@ -227,10 +227,68 @@ typedef struct GLNode1 {
|
|||
|
||||
### 二叉树
|
||||
|
||||
### 三叉树
|
||||
#### 性质
|
||||
|
||||
1. 非空二叉树第 i 层最多 2^(i-1) 个结点 (i >= 1)
|
||||
2. 深度为 k 的二叉树最多 2^k - 1 个结点 (k >= 1)
|
||||
3. 度为 0 的结点数为 n0,度为 2 的结点数为 n2,则 n0 = n2 + 1
|
||||
4. 有 n 个结点的完全二叉树深度 k = ⌊ log2(n) ⌋ + 1
|
||||
5. 对于含 n 个结点的完全二叉树中编号为 i (1 <= i <= n) 的结点
|
||||
1. 若 i = 1,为根,否则双亲为 ⌊ i / 2 ⌋
|
||||
2. 若 2i > n,则 i 结点没有左孩子,否则孩子编号为 2i + 1
|
||||
3. 若 2i + 1 > n,则 i 结点没有右孩子,否则孩子编号为 2i + 1
|
||||
|
||||
#### 存储结构
|
||||
|
||||
##### 顺序存储
|
||||
|
||||
![](images/SqBinaryTree.png)
|
||||
|
||||
##### 链式存储
|
||||
|
||||
![](images/LinkBinaryTree.png)
|
||||
|
||||
#### 遍历方式
|
||||
|
||||
* 先序遍历
|
||||
* 中序遍历
|
||||
* 后续遍历
|
||||
* 层次遍历
|
||||
|
||||
#### 分类
|
||||
|
||||
* 满二叉树
|
||||
* 完全二叉树(堆)
|
||||
* 大顶堆:根 >= 左 && 根 >= 右
|
||||
* 小顶堆:根 <= 左 && 根 <= 右
|
||||
* 二叉查找树(二叉排序树):左 < 根 < 右
|
||||
* 平衡二叉树(AVL树):| 左子树树高 - 右子树树高 | <= 1
|
||||
* 最小失衡树:平衡二叉树插入新结点导致失衡的子树:调整:
|
||||
* LL型:根的左孩子右旋
|
||||
* RR型:根的右孩子左旋
|
||||
* LR型:根的左孩子左旋,再右旋
|
||||
* RL型:右孩子的左子树,先右旋,再左旋
|
||||
|
||||
### 森林
|
||||
|
||||
#### 树的存储结构
|
||||
|
||||
* 双亲表示法
|
||||
* 双亲孩子表示法
|
||||
* 孩子兄弟表示法
|
||||
|
||||
#### 并查集
|
||||
|
||||
一种不相交的子集所构成的集合 S = {S1, S2, ..., Sn}
|
||||
|
||||
#### B树
|
||||
|
||||
#### B+树
|
||||
|
||||
#### 红黑树
|
||||
|
||||
#### 八叉树
|
||||
|
||||
### 图
|
||||
|
||||
## 算法
|
||||
|
|
BIN
images/LinkBinaryTree.png
Normal file
BIN
images/LinkBinaryTree.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
images/SqBinaryTree.png
Normal file
BIN
images/SqBinaryTree.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
Loading…
Reference in New Issue
Block a user