diff --git a/chapter_array_and_linkedlist/array.md b/chapter_array_and_linkedlist/array.md index c38247cde..a5cd5a3fb 100755 --- a/chapter_array_and_linkedlist/array.md +++ b/chapter_array_and_linkedlist/array.md @@ -2,7 +2,7 @@ comments: true --- -# 4.1.   数组(Array) +# 4.1.   数组 「数组 Array」是一种将 **相同类型元素** 存储在 **连续内存空间** 的数据结构,将元素在数组中的位置称为元素的「索引 Index」。 diff --git a/chapter_array_and_linkedlist/linked_list.md b/chapter_array_and_linkedlist/linked_list.md index 54edc14d1..1ec86a04b 100755 --- a/chapter_array_and_linkedlist/linked_list.md +++ b/chapter_array_and_linkedlist/linked_list.md @@ -2,7 +2,7 @@ comments: true --- -# 4.2.   链表(Linked List) +# 4.2.   链表 !!! note "引言" diff --git a/chapter_array_and_linkedlist/list.md b/chapter_array_and_linkedlist/list.md index 5e68d4c2f..2bd56684b 100755 --- a/chapter_array_and_linkedlist/list.md +++ b/chapter_array_and_linkedlist/list.md @@ -2,7 +2,7 @@ comments: true --- -# 4.3.   列表(List) +# 4.3.   列表 **由于长度不可变,数组的实用性大大降低**。在很多情况下,我们事先并不知道会输入多少数据,这就为数组长度的选择带来了很大困难。长度选小了,需要在添加数据中频繁地扩容数组;长度选大了,又造成内存空间的浪费。 diff --git a/chapter_graph/graph.md b/chapter_graph/graph.md index 2766aecca..3b9562e52 100644 --- a/chapter_graph/graph.md +++ b/chapter_graph/graph.md @@ -2,7 +2,7 @@ comments: true --- -# 9.1.   图(Graph) +# 9.1.   图 「图 Graph」是一种非线性数据结构,由「顶点 Vertex」和「边 Edge」组成。我们可将图 $G$ 抽象地表示为一组顶点 $V$ 和一组边 $E$ 的集合。例如,以下表示一个包含 5 个顶点和 7 条边的图 diff --git a/chapter_hashing/hash_map.md b/chapter_hashing/hash_map.md index 7d310ed85..eaba30d6f 100755 --- a/chapter_hashing/hash_map.md +++ b/chapter_hashing/hash_map.md @@ -2,7 +2,7 @@ comments: true --- -# 6.1.   哈希表(Hash Map) +# 6.1.   哈希表 哈希表通过建立「键 key」和「值 value」之间的映射,实现高效的元素查找。具体地,输入一个 key ,在哈希表中查询并获取 value ,时间复杂度为 $O(1)$ 。 diff --git a/chapter_heap/heap.md b/chapter_heap/heap.md index 00938aa58..c8384eaa2 100644 --- a/chapter_heap/heap.md +++ b/chapter_heap/heap.md @@ -2,7 +2,7 @@ comments: true --- -# 8.1.   堆(Heap) +# 8.1.   堆 「堆 Heap」是一棵限定条件下的「完全二叉树」。根据成立条件,堆主要分为两种类型: diff --git a/chapter_preface/contribution.md b/chapter_preface/contribution.md deleted file mode 100644 index 26073669f..000000000 --- a/chapter_preface/contribution.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -comments: true ---- - -# 0.4.   一起参与创作 - -!!! success "开源的魅力" - - 纸质书籍的两次印刷的间隔时间往往需要数年,内容更新非常不方便。
但在本开源 HTML 书中,内容更迭的时间被缩短至数日甚至几个小时。 - -由于作者水平有限,书中内容难免疏漏谬误,请您谅解。如果发现笔误、无效链接、内容缺失、文字歧义、解释不清晰、行文结构不合理等问题,请您帮忙修正,以帮助其他读者获取更优质的学习内容。所有[撰稿人](https://github.com/krahets/hello-algo/graphs/contributors)将被展示在仓库与网站主页,以感谢他们对开源社区的无私奉献! - -## 0.4.1.   内容微调 - -每个页面的右上角都有一个「编辑」图标,你可以按照以下步骤修改文字或代码: - -1. 点击编辑按钮,如果遇到提示“需要 Fork 此仓库”,请通过; -2. 修改 Markdown 源文件内容,并检查内容正确性,尽量保持排版格式统一; -3. 在页面底部填写更改说明,然后单击“Propose file change”按钮;页面跳转后,点击“Create pull request”按钮发起拉取请求即可。 - -![页面编辑按键](contribution.assets/edit_markdown.png) - -

Fig. 页面编辑按键

- -图片无法直接修改,需要通过新建 [Issue](https://github.com/krahets/hello-algo/issues) 或评论留言来描述图片问题,我会第一时间重新画图并替换图片。 - -## 0.4.2.   内容创作 - -如果您想要参与本开源项目,包括翻译代码至其他编程语言、拓展文章内容等,那么需要实施 Pull Request 工作流程: - -1. 登录 GitHub ,并 Fork [本仓库](https://github.com/krahets/hello-algo) 至个人账号; -2. 进入 Fork 仓库网页,使用 `git clone` 克隆该仓库至本地; -3. 在本地进行内容创作,并通过运行测试来验证代码正确性; -4. 将本地更改 Commit ,并 Push 至远程仓库; -5. 刷新仓库网页,点击“Create pull request”按钮发起拉取请求即可; - -## 0.4.3.   Docker 部署 - -你可以使用 Docker 来部署本项目。 - -```shell -git clone https://github.com/krahets/hello-algo.git -cd hello-algo -docker-compose up -d -``` - -稍等片刻,即可使用浏览器打开 `http://localhost:8000` 访问本项目。 - -使用以下命令即可删除部署。 - -```shell -docker-compose down -``` diff --git a/chapter_preface/installation.md b/chapter_preface/installation.md deleted file mode 100644 index d7f57bd21..000000000 --- a/chapter_preface/installation.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -comments: true ---- - -# 0.3.   编程环境安装 - -## 0.3.1.   安装 VSCode - -本书推荐使用开源轻量的 VSCode 作为本地 IDE ,下载并安装 [VSCode](https://code.visualstudio.com/) 。 - -## 0.3.2.   Java 环境 - -1. 下载并安装 [OpenJDK](https://jdk.java.net/18/)(版本需满足 > JDK 9)。 -2. 在 VSCode 的插件市场中搜索 `java` ,安装 Java Extension Pack 。 - -## 0.3.3.   C/C++ 环境 - -1. Windows 系统需要安装 [MinGW](https://sourceforge.net/projects/mingw-w64/files/)([配置教程](https://blog.csdn.net/qq_33698226/article/details/129031241)),MacOS 自带 Clang 无需安装。 -2. 在 VSCode 的插件市场中搜索 `c++` ,安装 C/C++ Extension Pack 。 - -## 0.3.4.   Python 环境 - -1. 下载并安装 [Miniconda3](https://docs.conda.io/en/latest/miniconda.html) 。 -2. 在 VSCode 的插件市场中搜索 `python` ,安装 Python Extension Pack 。 - -## 0.3.5.   Go 环境 - -1. 下载并安装 [go](https://go.dev/dl/) 。 -2. 在 VSCode 的插件市场中搜索 `go` ,安装 Go 。 -3. 快捷键 `Ctrl + Shift + P` 呼出命令栏,输入 go ,选择 `Go: Install/Update Tools` ,全部勾选并安装即可。 - -## 0.3.6.   JavaScript 环境 - -1. 下载并安装 [node.js](https://nodejs.org/en/) 。 -2. 在 VSCode 的插件市场中搜索 `javascript` ,安装 JavaScript (ES6) code snippets 。 - -## 0.3.7.   C# 环境 - -1. 下载并安装 [.Net 6.0](https://dotnet.microsoft.com/en-us/download) ; -2. 在 VSCode 的插件市场中搜索 `c#` ,安装 c# 。 - -## 0.3.8.   Swift 环境 - -1. 下载并安装 [Swift](https://www.swift.org/download/); -2. 在 VSCode 的插件市场中搜索 `swift`,安装 [Swift for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=sswg.swift-lang)。 - -## 0.3.9.   Rust 环境 - -1. 下载并安装 [Rust](https://www.rust-lang.org/tools/install); -2. 在 VSCode 的插件市场中搜索 `rust`,安装 [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)。 diff --git a/chapter_stack_and_queue/deque.md b/chapter_stack_and_queue/deque.md index b2956de59..653adea3b 100644 --- a/chapter_stack_and_queue/deque.md +++ b/chapter_stack_and_queue/deque.md @@ -2,7 +2,7 @@ comments: true --- -# 5.3.   双向队列(Deque) +# 5.3.   双向队列 对于队列,我们只能在头部删除或在尾部添加元素,而「双向队列 Deque」更加灵活,在其头部和尾部都能执行元素添加或删除操作。 diff --git a/chapter_stack_and_queue/queue.md b/chapter_stack_and_queue/queue.md index fcffa5b75..3c5f5cc3a 100755 --- a/chapter_stack_and_queue/queue.md +++ b/chapter_stack_and_queue/queue.md @@ -2,7 +2,7 @@ comments: true --- -# 5.2.   队列(Queue) +# 5.2.   队列 「队列 Queue」是一种遵循「先入先出 first in, first out」数据操作规则的线性数据结构。顾名思义,队列模拟的是排队现象,即外面的人不断加入队列尾部,而处于队列头部的人不断地离开。 diff --git a/chapter_stack_and_queue/stack.md b/chapter_stack_and_queue/stack.md index dbff303d4..86cf65648 100755 --- a/chapter_stack_and_queue/stack.md +++ b/chapter_stack_and_queue/stack.md @@ -2,7 +2,7 @@ comments: true --- -# 5.1.   栈(Stack) +# 5.1.   栈 「栈 Stack」是一种遵循「先入后出 first in, last out」数据操作规则的线性数据结构。我们可以将栈类比为放在桌面上的一摞盘子,如果需要拿出底部的盘子,则需要先将上面的盘子依次取出。 diff --git a/chapter_tree/binary_tree.md b/chapter_tree/binary_tree.md index 2feba14cd..4529b3378 100644 --- a/chapter_tree/binary_tree.md +++ b/chapter_tree/binary_tree.md @@ -2,7 +2,7 @@ comments: true --- -# 7.1.   二叉树(Binary Tree) +# 7.1.   二叉树 「二叉树 Binary Tree」是一种非线性数据结构,代表着祖先与后代之间的派生关系,体现着“一分为二”的分治逻辑。类似于链表,二叉树也是以结点为单位存储的,结点包含「值」和两个「指针」。