Skip to content

Commit

Permalink
build
Browse files Browse the repository at this point in the history
  • Loading branch information
shipiyouniao committed Sep 15, 2024
1 parent c0c148b commit 73e9d03
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -158,59 +158,59 @@ AVL 树的实现主要是为了保持树的平衡,提高检索效率,根据

红黑树删除操作极其复杂,且考研和求职面试基本不会考察,因此这里不做详细介绍。

## 讲讲B树的结构和特点
## 讲讲 B 树的结构和特点

B树是一种多路搜索树,主要用于数据库和文件系统中,具有以下特点:
B 树是一种多路搜索树,主要用于数据库和文件系统中,具有以下特点:

1. **关键字集合分布在整棵树中**:任何一个关键字出现且只出现在一个节点中。
2. **搜索可能在非叶子节点结束**:搜索过程中可能在非叶子节点找到目标关键字。
3. **搜索性能等价于在关键字全集内做一次二分查找**:B树的高度较低,搜索效率高。
4. **自动层次控制,自动平衡**:B树通过插入和删除操作自动保持平衡,确保树的高度较低。
3. **搜索性能等价于在关键字全集内做一次二分查找**:B 树的高度较低,搜索效率高。
4. **自动层次控制,自动平衡**:B 树通过插入和删除操作自动保持平衡,确保树的高度较低。

B树的结构主要有根节点、内部节点和叶子节点,每个节点可以有多个子节点,可以减少树的高度,提高检索效率。
B 树的结构主要有根节点、内部节点和叶子节点,每个节点可以有多个子节点,可以减少树的高度,提高检索效率。

一个m阶(m > 3)的非空B树满足以下几个条件
一个 m 阶(m > 3)的非空 B 树满足以下几个条件

1. **节点的子节点数量**:除了根节点和叶子节点外,每个节点至少有 `m/2` 个子节点,最多有 m 个子节点。
2. **节点的关键字数量**:每个节点由两部分组成,一部分是指向子节点的指针,一部分是关键字。每个节点包含的关键字数量为 n,且满足 `m/2 - 1 ≤ n ≤ m - 1`,指针的个数是 `n+1`。
3. **根节点的子节点数量**:根节点至少有两个子树,除非整棵树只有根节点。
4. **叶子节点的层次**:所有叶子节点都在同一层,叶子节点的指针为空。

![B树](B树.png)
![B 树](B树.png)

## B树的插入操作(删除一般不考)
## B 树的插入操作(删除一般不考)

1. **找到插入位置**:从根节点开始,找到适当的叶子节点插入关键字。
2. **插入关键字**:将关键字直接插入在节点的左侧或右侧。
3. **节点分裂**:如果插入后节点的关键字数量超过 `m - 1`,则进行节点分裂,将一半的关键字元素连带对应指针分裂到其相邻的新节点,中间关键字元素上升到父节点,如果根节点分裂,则创建一个新的根节点。

## 讲讲B+树的结构和特点
## 讲讲 B+ 树的结构和特点

B+树是一种多路平衡搜索树,是B树的一种变种,主要特点如下:
B+ 树是一种多路平衡搜索树,是 B 树的一种变种,主要特点如下:

1. **多路平衡搜索树**:每个节点可以有多个子节点,可以减少树的高度,提高检索效率。
2. **平衡树**:每个节点的子节点数目相同,可以保持树的平衡,提高检索效率。
3. **自平衡树**:可以自动调整树的结构,保持树的平衡,提高检索效率。
4. **叶子节点有序**:B+树的叶子节点是有序的,可以加快区间查询的速度。
5. **非叶子节点不存储数据**:B+树的非叶子节点只存储索引,不存储数据,可以减少IO操作,提高检索效率。
4. **叶子节点有序**:B+ 树的叶子节点是有序的,可以加快区间查询的速度。
5. **非叶子节点不存储数据**:B+ 树的非叶子节点只存储索引,不存储数据,可以减少 IO 操作,提高检索效率。

B+树的结构主要有根节点、内部节点和叶子节点,每个节点可以有多个子节点,可以减少树的高度,提高检索效率。
B+ 树的结构主要有根节点、内部节点和叶子节点,每个节点可以有多个子节点,可以减少树的高度,提高检索效率。

换句话说,和B树的区别在于
换句话说,和 B 树的区别在于

1. **非叶子节点的子树指针数和关键字数相同**:B+树的非叶子节点的子树指针数等于关键字数,而B树的非叶子节点的子树指针数总是比关键字数多1
2. **非叶子节点孩子范围是左闭右开**:B+树的非叶子节点的孩子范围是左闭右开区间。
3. **所有叶子节点有链指针**:B+树的所有叶子节点通过链指针连接,便于区间查找。
4. **所有关键字都在叶子节点上**:B+树的所有关键字都存储在叶子节点上,非叶子节点只存储索引。
5. **搜索只会在叶子节点上结束**:B+树的搜索操作最终会在叶子节点上结束。
1. **非叶子节点的子树指针数和关键字数相同**:B+ 树的非叶子节点的子树指针数等于关键字数,而 B 树的非叶子节点的子树指针数总是比关键字数多 1
2. **非叶子节点孩子范围是左闭右开**:B+ 树的非叶子节点的孩子范围是左闭右开区间。
3. **所有叶子节点有链指针**:B+ 树的所有叶子节点通过链指针连接,便于区间查找。
4. **所有关键字都在叶子节点上**:B+ 树的所有关键字都存储在叶子节点上,非叶子节点只存储索引。
5. **搜索只会在叶子节点上结束**:B+ 树的搜索操作最终会在叶子节点上结束。

![B+树](B+树.png)
![B+ 树](B+树.png)

B+树一般不考插入删除。
B+ 树一般不考插入删除。

## 讲讲字典树的结构和特点

字典树(Trie树)是一种树形结构,用于存储字符串,主要特点如下:
字典树(Trie 树)是一种树形结构,用于存储字符串,主要特点如下:

1. **树形结构**:字典树是一种树形结构,每个节点有多个子节点,可以存储字符串,提高检索效率。
2. **前缀树**:字典树是一种前缀树,每个节点代表一个字符,可以存储前缀,提高检索效率。
Expand All @@ -237,4 +237,4 @@ B+树一般不考插入删除。

### 注意事项

字典树适用于字符集较小的语言(如英文),因为英文只有26个字母。而对于字符集较大的语言(如中文),字典树的空间复杂度较高,需要根据具体需求选择合适的数据结构。
字典树适用于字符集较小的语言(如英文),因为英文只有 26 个字母。而对于字符集较大的语言(如中文),字典树的空间复杂度较高,需要根据具体需求选择合适的数据结构。
2 changes: 1 addition & 1 deletion 实验室/学生机器人爱好者协会/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
![部分证书](./photo/award2.jpg)

## 四、招新流程
机协招新群 -18957230531
机协招新群 -18:957230531

![海报 1](./photo/poster1.png)
![海报 2](./photo/poster2.png)
Expand Down

0 comments on commit 73e9d03

Please sign in to comment.