# 笔记（去重版）

去重后保留 5 个章节

=======================================================
【2026-05-06 14:03】数据结构 - 第1轮-The correct answer for th

==================================================

## 搜索知识点

The correct answer for the 2023 exam question on data structures is D. The key concept is the sequential storage structure of linear tables. The algorithm to access the i-th element runs in constant time O(1).

2023 考研408 真题答案解析 一、单项选择题 1.【参考答案】D 【解析】 线性表的顺序存储结构采用一组地址连续的存储单元依次存储线性表的数据元素。 特 点是逻辑上相邻的数据元素在物理位置上相邻。 线性表顺序存储结构是一种随机存取的存储结 构，设线性表的每个元素占L 个存储单元，第一个元素a1 的存储地址是LOC(a1)，则任意元素 ai 的LOC(ai)=LOC(a1)+(i-1)L。因此获取第i 个值的算法为常量阶O(1)。 2.【参考答案】C 【解析】主要考察双链表的插入操作，解决这类问题可在纸上画出具体的双链表进行模拟。因 为 s->next 已经赋值为p 的后一个结点，同时p->next 指针已经赋值为s。所以只需要处理 s->next->prev 和 s->next->prev 的赋值，s->prev 需要指向p，s-next->prev 需要指向s。因为 p->next 和s 指向同一个结点，所以可以用p->next 代表s。故本题的正确选项为C。 3.【参考答案】A 【解析】存储稀疏矩阵M，三元组表的表项存储了行row、列col、值value 三种信息，除此之 外，我们还需要知道矩阵M 的规模 rows × cols，即M 的行数rows 和M 的列数cols，这个 信息应该直接给出。 当我们需要某个位置的元素， 可以先根据M 的行数和列数判断是否越界， 如果没有越界， 在三元组进行查找， 如果三元组没有保存对应位置的值代表矩阵中该位置的值 为0。本题答案选A。 4.【参考答案】B 【解析】 计算字符集S 构造的哈夫曼编码的加权平均长度， 我们需要使用字符的频次来确定每 个字符的编码长度，并计算加权平均值。给定字符集S 中各字符出现的频次为3，4，5，6， 8，10，我们可以按照哈夫曼编码算法构造哈夫曼树。构建的哈夫曼树如图所示。加权平均长 [...]

电子邮件

正确答案：A  

本题考察 POP3 协议，对题目提供的选项进行逐一分析：

 I. 支持用户代理从邮件服务器读取邮件：✅。POP3 的主要功能就是支持客户端（用户代理）从邮件服务器读取邮件。
 II. 支持用户代理向邮件服务器发送邮件：❌。发送邮件的功能通常由 SMTP（Simple Mail Transfer Protocol）负责，而不是 POP3。
 III. 支持邮件服务器之间发送与接收邮件：❌。邮件服务器之间的邮件传输通常由 SMTP 协议处理，而不是 POP3。
 IV. 支持一条 TCP 连接收取多封邮件：✅。POP3 可以在一个会话中通过一条 TCP 连接获取用户邮箱中的多封邮件。

所以 I、IV 是正确的，本题答案为 A。

### 解答题

#### 数据结构

##### 41

设有两个长度均为 `n` 的一维整型数组 `A` 和 `res`，对数组 `A` 中的每个元素 `A[i]`，计算 `A[i]` 与 `Aj` 乘积的最大值，并将其保存到 `res[i]`中。例如，若 `A[i] = {1, 4, -9, 6}`，则得到 `res[i] = {6, 24, 81, 36}`。现给定数组 `A`，请设计一个时间和空间上尽可能高效的算法 `calMulMax`，求 `res` 中各元素的值。函数原型为：`void calMulMax(int A[], int res[], int n)`，要求：

(1) 给出算法的基本设计思想：（4 分）

(2) 根据设计思想，采用 C 或 C++ 语言描述算法，关键之处给出注释：（7 分）

(3) 说明你所设计算法的时间复杂度和空间复杂度。（2 分）

顺序表 [...] # 2025 年 408 真题

 2025 年 408 真题精讲

### 选择题

选择题答案速对

| No.



===== 

=======================================================
【2026-05-06 14:35】数据结构 - 第1轮-第1章 绪论 =====


## 知识点

第1章 绪论

## 习题练习

### 题目 1

```
（8 分）文件系统的目录项包括文件名和索引节点号，磁盘包含索引节点表、位图、目录、
```

### 我的答案

**答案：** A

**推导：** **AI推理：** A directory entry in a file system includes a filename and an index node number. The index node contains metadata about the file. The directory entry is cached in memory for faster access.
**参考：** 注意，目录项这个数据结构不只是表示目录，也是可以表示文件的。

那文件数据是如何存储在磁盘的呢？

磁盘读写的最小单位是扇区，扇区的大小只有 `512B` 大小，很明显，如果每次读写都以这么小为单位，那这读写的效率会非常低。

`512B`

所以，文件系统把多个扇区组成了一个逻辑块，每次读写的最小单位就是逻辑块（数据块），Linux 中的逻辑块大小为 `4KB`，也就是一次性读写 8 个扇区，这将大大提高了磁盘的读写的效率。

`4KB`

以上就是索引节点、目录项以及文件数据的关系，下面这个图就很好的展示了它们之间的关系：

.png)

索引节点是存储在硬盘上的数据，那么为

### 答案核对

✅正确


## 本节要点

- 本节学习了第1章 绪论，共1道练习题

- 做对1道，正确率100%

- 核心关键词：第1章、绪论

- 需加强：无


=======================================================


=======================================================
【2026-05-06 14:33】数据结构 - 第2轮-第3章 栈、队列和数组 =====


## 知识点

第3章 栈、队列和数组

## 习题练习

### 题目 1

```
 使用 k 路归并对外存中的数据进行排序，归并趟数为 d，以下说法正确的是（）。
```

### 我的答案

**答案：** C

**推导：** **AI推理：** Merge sort uses k runs to sort external data, with d merge passes. The time complexity is O(n log k) per pass, and O(d * n log k) total. The correct number of merge passes d is essential for optimal performance.
**参考：** 214.下面的代码在绝大部分时间内都运行得很正常，请问什么情况下会出现问题？根源在哪里？ 215.TreeMap和TreeSet在排序时如何比较元素？Collections工具类中的sort（）方法如何比较元素？ 216.List里面如何剔除相同的对象？请简单用代码实现一种方法  217.Java.util.Map的实现类有 218.下列叙述中正确的是（） 219.List、Set、Map 是否继承自Collection 接口？ 220.说出ArrayList、Vector、LinkedList 的存储性能和特性？ 221.List、

### 答案核对

❌错误 → 正确答案是 A


## 错题解析

K-way merge sort uses k sorted sublists to merge data from external storage, with d merge passes. It's a stable sorting algorithm.
博客园logo
搜索
搜索
搜索
搜索
写随笔
我的博客
短消息
简洁模式
用户头像

# 导航

订阅

# 第三章 栈和队列

一、选择题

1、一个栈的输入序列为：a，b，c，d，e，则栈的不可能输出的序列是（   ）。

A. a,b,c,d,e              B. d,e,c,b,a

C. d,c,e,a,b              D. e,d,c,b,a

2、判断一个循环队列Q（最多n个元素）为满的条件是（   ）。

A. Q->rear==Q->front               B. Q->rear==Q->front+1

C. Q->front==
栈一为空时，top=0；栈二为空时，top=n+1;

栈满时，top + 1 = top. （或者说，两栈顶指针相减的绝对值为1；或者说，两栈顶指针相邻）

> 如果题中，给出了top[]之类的数据，那么就写公式，否则写后面的纯文字，二者选一。

## Points

### 关于栈

对于Hanoi塔，n个圆盘，则总的移动次数为2


### 题目 2

```
系统中有 8 个进程，执行右图的操作，资源 S 的初始值为 5，若此时 S 的值为-2，m 表示
```

### 我的答案

**答案：** （未得出）

**推导：** **AI推理：** The resource S has an initial value of 5, but it is currently -2, indicating over-allocation. This situation could lead to deadlock if not managed properly. The negative value suggests that more processes are requesting resources than are available.
**参考：** B.管程每次只允许一个进程进入管程

C．管程中signal操作的作用和信号量机制中的V操作相同

D.管程是被进程调用的，管程是语法范围，无法创建和撤销

###### 解析

29.C

管程的signal操作与信号量机制中的V操作不同,信号量机制中的V操作一定会改变信号量的值S=S+1。而管程中的signal操作是针对某个条件变量的，若不存在因该条件而阻塞的进程，则signal不会产生任何影响。

题目tag详情

###### 总结

| 题型 | 错

### 答案核对

❌错误 → 正确答案是 A


## 错题解析

资源S的初始值未提供，栈和队列的基本操作及其应用是数据结构中的重要内容。
出车站站台的列车顺序（注：每一列车由站台开出时均可进栈，出栈开出站台，但不允许 出栈后回退） 。写出每一种可能的序列。 3．在操作序列 push(1)、push(2)、pop()、push(5)、push(7)、pop()、push(6)之后，栈 顶元素和栈底元素分别是什么? 4．有字符串次序为5y-a/y↑2，试利用栈排出将次序改变为5yay2↑/-的操作步骤 （可用X 代表扫描该字符串过程中顺序取一字符进栈的操作，用S 代表从栈中取出一字符 加到新字符串尾的出栈的操作） 。例如，ABC 变为BCA 的操作步骤为XXSXSS。 5．简述以下算法的功能。 void algo (Stack S,
17798541699

版权所有 南京苏学文化有限公司  联系电话：17798541699  江苏省南京市雨花台区雨花西路55号（中华门地铁站3号口步行340米）新工·数智健康产业园311   苏ICP备2024092531号

在线客服系统 [...] 全面系统

  资深师资小班教学

  在线咨询

#### 相关下载

 行测考试：资料分析分题型阅读方法
 行测考试：图形推理四面体的折纸盒
 行测考试：数量关系做不完 应对策略！
 行测考试：资料分析考点总结
 行测考试：类比推理中常见的词语结构
 行测考试：



## 本节要点

- 本节学习了第3章 栈、队列和数组，共2道练习题

- 做对0道，正确率0%

- 核心关键词：第3章、栈、队列和数组

- 需加强：错题对应的知识点


===== 

=======================================================
【2026-05-06 14:42】数据结构 - 第1章-线性表

=======================================================

## 📖 知识点

2027 年
光        士                        已马
数据结构考研复习指导
王道论坛 ”组编
购买王道书，就上
wangdao.taobao,com
口|二本口|
汪呈  区
加曲
1
画党呈本和
电子工业出版社
Publishing 于 人 下 JIndustry
官方开源，高清带书签PDT
最新配套视频请上bilibili,com 搜索”王道”

内容简介

本书是计算机专业硕士研究生入学考试“数据结构”课程的复习用书，内容包括绪论，线性表,，栈、队
列和数组，串，树与二又树，图，查找，排序等。全书严格按照最新计算机考研大岗数据结构部分的要求，
对大网所涉及的知识点进行集中梳理，力求内容精练、重点突出、深入浅出。本书精选部分名校的历年考研
真题，并给出详细的解题思路，力求实现讲练结合、灵活掌握、举一反三的效果。

本书既可作为考生参加计算机专业硕士研究生入学考试的复习用书，又可作为计算机专业学生学习“数
据结构”课程的辅导用书。
未经许可，不得以任何方式复制或抄袭本书之部分或全部内容。
版权所有，侵权必究。

图书在版编目 CIP) 数据

2027 年数据结构考研复习指导 / 王道论坛组编.
北京 : 电子工业出版社，2026. 1. -- ISBN 978-7-121
-51791-4

让

中国国家版本馆 CIP 数据核字第 2025EF0296 号
责任编辑:，谭海平
印刷，保定市中画美凯印刷有限公司
装订: 保定市中画美凯印刷有限公司
出版发行，电子工业出版社

北京市海淀区万寿路 173 信箱 ”邮编: 100036

开 本: 787x1092 1/16 印张: 2525 ”字数:711.04干字
版 “次: 2026年1月第1版
印 次: 2026年1月第1次印刷
定价: 78.00元

凡所购买电子工业出版社图书有缺损问题，请向购买书店调换。若书店售缺，请与本社发行部联系，联
系及邮购电话: (010) 88254888，88258888。

质量投诉请发邮件至 zlts@pheicom en，盗版侵权举报请发邮件至 dbqq@pheicom cn。

本书咨询联系方式: (010) 88254552，tan02G@pheicom cn。

购买王道书请上王道考研书店: wangdao,taobao.com

人8站扫索“王道计算机教育"
FA   TS一     rm    <  ss    1
UL 必全    、  区
=          -      陨
|     |     5     Emma 2owsraoepecom
操作系统        计蓝机网络交       台扎结构 交
   人              套
多
a               源
RS                                                   人
证ER 扫码关注           AN
证和的科“王道在线"      fr 3 同               了
起                            |
SS                        z
进入菜单“兑换中心”            SSeoo                         付
况殷配套课件等资源                                           到
于过计和机考研厂让“人
开通题库小程序
 1 国              有            【关于配套视频的说明】
[oO 1 重 /17  oj
ss SNAA LA 7                          1 配套的考点精讲视频与习题视
人       A一。     加    有      频均为最新版本，已免费发布
人 < 多二-人      在8站，乱须换，内容持续更
可放心   1
mm 人        由尘红日          有
人     NS       两让      2. 【王道计算机刷题库】小程序
7  AN              下          面向所有读者免费开放，它将
Ov 21 .14                回瑟5癌:           纸质习题数字化，可智能居
7               和，          题，彼向提分，高效备考|
3. 兑换码用于获取课件资源，以
及开通小程序VIP权限。
盗版书无兑换码请勿购买    个          人
配套视频不包含答疑服务                 换即失效。
购买王道书请上王道考研书店: wan

## 💡 解题技巧

37 / 48 1.5 线性表的应用 1.5.1 约瑟夫问题 1.5 线性表的应用 问题. 𝑛 个人围成一圈，从第 1 个人开始，按顺时针方向 1 至 𝑚 报 数，报到 𝑚 的人出列。然后从下一个人开始继续上述过程，直到剩 下一个人为止。此人获得胜利，求他在最开始的圈中的位置。 例如，给出 𝑛= 8，𝑚= 3，则第 7 个人获胜。 解题思路：用线性表 表示状态，模拟报数过程。 思考：应该选择哪种线性表？ • 顺序表：报数可用 𝑂(1) 直接定位，删除最坏情况是 𝑂(𝑛)。 • 链表：报数顺序进行是 𝑂(𝑚)，删除可在 𝑂(1) 内完成。 韩文弢 数据结构与算法 2024–2025 学年度春季学期 39 / 48 1.5.2 约瑟夫问题：使用 vector 1.5 线性表的应用 1 #include <iostream> C++ 2 #include <vector> 3 4 int main() { 5 int n, m; 6 std::cin >> n >> m; 7 // 初始化人员序列 8 std::vector<int> a(n); 9 int c = 0; 10 for (int& x : a) { 11 x = ++c; 韩文弢 数据结构与算法 2024–2025 学年度春季学期 40 / 48 1.5.2 约瑟夫问题：使用 vector 1.5 线性表的应用 12 } 13 // 报数过程 14 auto it = a.begin(); 15 for (int i = 1; i < n; i++) { 16 for (int j = 1; j < m; j++) { 17 ++it; 18 // 处理到达序列末尾的情况 19 if (it == a.end()) { 20 it = a.begin(); 21 } 22 } 韩文弢 数据结构与算法 [...] 

## 🔍 题目解析

2023 考研408 真题答案解析 一、单项选择题 1.【参考答案】D 【解析】 线性表的顺序存储结构采用一组地址连续的存储单元依次存储线性表的数据元素。 特 点是逻辑上相邻的数据元素在物理位置上相邻。 线性表顺序存储结构是一种随机存取的存储结 构，设线性表的每个元素占L 个存储单元，第一个元素a1 的存储地址是LOC(a1)，则任意元素 ai 的LOC(ai)=LOC(a1)+(i-1)L。因此获取第i 个值的算法为常量阶O(1)。 2.【参考答案】C 【解析】主要考察双链表的插入操作，解决这类问题可在纸上画出具体的双链表进行模拟。因 为 s->next 已经赋值为p 的后一个结点，同时p->next 指针已经赋值为s。所以只需要处理 s->next->prev 和 s->next->prev 的赋值，s->prev 需要指向p，s-next->prev 需要指向s。因为 p->next 和s 指向同一个结点，所以可以用p->next 代表s。故本题的正确选项为C。 3.【参考答案】A 【解析】存储稀疏矩阵M，三元组表的表项存储了行row、列col、值value 三种信息，除此之 外，我们还需要知道矩阵M 的规模 rows × cols，即M 的行数rows 和M 的列数cols，这个 信息应该直接给出。 当我们需要某个位置的元素， 可以先根据M 的行数和列数判断是否越界， 如果没有越界， 在三元组进行查找， 如果三元组没有保存对应位置的值代表矩阵中该位置的值 为0。本题答案选A。 4.【参考答案】B 【解析】 计算字符集S 构造的哈夫曼编码的加权平均长度， 我们需要使用字符的频次来确定每 个字符的编码长度，并计算加权平均值。给定字符集S 中各字符出现的频次为3，4，5，6， 8，10，我们可以按照哈夫曼编码算法构造哈夫曼树。构建的哈夫曼树如图所示。加权平均长 [...]

同时，数据结构大部分考点和题型非常固定，其中大部分考点为高频考点。 出现频率超过50%，即几乎一年一考或两年一考的考点有：. 时间复杂度; 线性表

# 2025 年 408 真题

 2025 年 408 真题精讲

### 选择题

选择题答案速对

| No. | Ans | No. | Ans | No. | Ans | No. | Ans | No. | Ans |
 ---  --



=======================================================


=======================================================
【2026-05-06 14:56】数据结构 - 第1章-计算机网络的概念

=======================================================

## 📖 知识点



## 💡 解题技巧

小林coding | Java面试学习 小林coding | Java面试学习

# # 如何将计算机网络、操作系统、数据结构与算法、计算组成融会贯通？

大家好，我是小林。

有位关注我一年的读者找我，他去年关注我公众后，开始自学 CS，主要是计算机基础这一块。

他从那时起，就日复一日的学习，并在 Github 有做笔记的习惯，你看他的提交记录，每天都有，一天都没拉下，就这样坚持了一年。

这个一年没有间断过的坚持，我是真的被震撼到，虽然我也经常肝文章，但是我也做不到每天都是学习的状态，总会想偷懒几天，毕竟学习真的是反人性的哈哈。

这位读者去年的时候，也只是会用 python 输出 hello world 初学者，而如今能开始啃 Redis 源码了，并且还记录了学习 Redis 数据结构的源码笔记。

我也跟他讨论了我学计算基础的感受，他也有相同的感受，看来是同道中人。

之前有很多读者问我学计算机基础有啥用？不懂算法、计算机网络、操作系统这些东西，也可以完成工作上的 CRUD 业务开发，那为什么要花时间去学？

是的，不懂这些，确实不会影响 CRUD 业务开发，对于这类业务开发的工作，难点是在于对业务的理解，但是门槛并不高，找个刚毕业人，让他花几个月时间熟悉业务和代码，他一样可以上手开发了，也就是说，单纯的 CRUD 业开发工作很快就会被体力更好的新人取代的。

另外，在面



