由于作者能力有限,书中难免存在一些遗漏和错误,请您谅解。如果您发现了笔误、失效链接、内容缺失、文字歧义、解释不清晰或行文结构不合理等问题,请协助我们进行修正,以帮助其他读者获得更优质的学习资源。
- 点击编辑按钮,如果遇到“需要 Fork 此仓库”的提示,请同意该操作。
@@ -3444,7 +3444,7 @@
图:页面编辑按键
图片无法直接修改,需要通过新建 Issue 或评论留言来描述问题,我们会尽快重新绘制并替换图片。
-16.2.2. 内容创作
+16.2.2 内容创作
如果您有兴趣参与此开源项目,包括将代码翻译成其他编程语言、扩展文章内容等,那么需要实施 Pull Request 工作流程:
- 登录 GitHub ,将本仓库 Fork 到个人账号下。
@@ -3453,7 +3453,7 @@
- 将本地所做更改 Commit ,然后 Push 至远程仓库。
- 刷新仓库网页,点击“Create pull request”按钮即可发起拉取请求。
-16.2.3. Docker 部署
+16.2.3 Docker 部署
执行以下 Docker 脚本,稍等片刻,即可在网页 http://localhost:8000 访问本项目。
git clone https://github.com/krahets/hello-algo.git
cd hello-algo
@@ -3540,7 +3540,7 @@
-4.2.1. 链表常用操作
+4.2.1 链表常用操作
初始化链表
建立链表分为两步,第一步是初始化各个节点对象,第二步是构建引用指向关系。初始化完成后,我们就可以从链表的头节点出发,通过引用指向 next 依次访问所有节点。
-4.2.2. 数组 VS 链表
+4.2.2 数组 VS 链表
下表总结对比了数组和链表的各项特点与操作效率。由于它们采用两种相反的存储策略,因此各种性质和操作效率也呈现对立的特点。
表:数组与链表的效率对比
@@ -4528,7 +4528,7 @@
-4.2.3. 常见链表类型
+4.2.3 常见链表类型
单向链表。即上述介绍的普通链表。单向链表的节点包含值和指向下一节点的引用两项数据。我们将首个节点称为头节点,将最后一个节点成为尾节点,尾节点指向空 \(\text{None}\) 。
环形链表。如果我们令单向链表的尾节点指向头节点(即首尾相接),则得到一个环形链表。在环形链表中,任意节点都可以视作头节点。
双向链表。与单向链表相比,双向链表记录了两个方向的引用。双向链表的节点定义同时包含指向后继节点(下一个节点)和前驱节点(上一个节点)的引用(指针)。相较于单向链表,双向链表更具灵活性,可以朝两个方向遍历链表,但相应地也需要占用更多的内存空间。
@@ -4712,7 +4712,7 @@

图:常见链表种类
-4.2.4. 链表典型应用
+4.2.4 链表典型应用
单向链表通常用于实现栈、队列、散列表和图等数据结构。
- 栈与队列:当插入和删除操作都在链表的一端进行时,它表现出先进后出的的特性,对应栈;当插入操作在链表的一端进行,删除操作在链表的另一端进行,它表现出先进先出的特性,对应队列。
@@ -4808,7 +4808,7 @@