diff --git a/codes/go/chapter_tree/binary_search_tree.go b/codes/go/chapter_tree/binary_search_tree.go index 624bd3cfa..442a14732 100644 --- a/codes/go/chapter_tree/binary_search_tree.go +++ b/codes/go/chapter_tree/binary_search_tree.go @@ -139,7 +139,6 @@ func (bst *binarySearchTree) remove(num int) { // 若删除节点为根节点,则重新指定根节点 bst.root = child } - // 子节点数为 2 } else { // 获取中序遍历中待删除节点 cur 的下一个节点 diff --git a/docs/chapter_array_and_linkedlist/linked_list.md b/docs/chapter_array_and_linkedlist/linked_list.md index a777c13e8..4edc16018 100755 --- a/docs/chapter_array_and_linkedlist/linked_list.md +++ b/docs/chapter_array_and_linkedlist/linked_list.md @@ -664,7 +664,7 @@ val; next; prev; - constructor(val, next) { + constructor(val, next, prev) { this.val = val === undefined ? 0 : val; // 节点值 this.next = next === undefined ? null : next; // 指向后继节点的指针(引用) this.prev = prev === undefined ? null : prev; // 指向前驱节点的指针(引用) diff --git a/docs/chapter_data_structure/character_encoding.assets/unicode_hello_algo.png b/docs/chapter_data_structure/character_encoding.assets/unicode_hello_algo.png index ca3e27248..0f1760f46 100644 Binary files a/docs/chapter_data_structure/character_encoding.assets/unicode_hello_algo.png and b/docs/chapter_data_structure/character_encoding.assets/unicode_hello_algo.png differ diff --git a/docs/chapter_data_structure/character_encoding.assets/utf-8_hello_algo.png b/docs/chapter_data_structure/character_encoding.assets/utf-8_hello_algo.png index efbec2b80..318e97c65 100644 Binary files a/docs/chapter_data_structure/character_encoding.assets/utf-8_hello_algo.png and b/docs/chapter_data_structure/character_encoding.assets/utf-8_hello_algo.png differ diff --git a/docs/chapter_data_structure/summary.md b/docs/chapter_data_structure/summary.md index 4d449b186..a01f6332b 100644 --- a/docs/chapter_data_structure/summary.md +++ b/docs/chapter_data_structure/summary.md @@ -12,7 +12,7 @@ - 计算机中的基本数据类型包括整数 byte, short, int, long 、浮点数 float, double 、字符 char 和布尔 boolean 。它们的取值范围取决于占用空间大小和表示方式。 - 原码、反码和补码是在计算机中编码数字的三种方法,它们之间是可以相互转换的。整数的原码的最高位是符号位,其余位是数字的值。 - 整数在计算机中是以补码的形式存储的。在补码表示下,计算机可以对正数和负数的加法一视同仁,不需要为减法操作单独设计特殊的硬件电路,并且不存在正负零歧义的问题。 -- 浮点数的编码由 1 位符号位、8 位指数位和 23 位分数为构成。由于存在指数位,浮点数的取值范围远大于整数,代价是牺牲了精度。 +- 浮点数的编码由 1 位符号位、8 位指数位和 23 位分数位构成。由于存在指数位,浮点数的取值范围远大于整数,代价是牺牲了精度。 - ASCII 码是最早出现的英文字符集,长度为 1 字节,共收录 127 个字符。GBK 字符集是常用的中文字符集,共收录两万多个汉字。Unicode 致力于提供一个完整的字符集标准,收录世界内各种语言的字符,从而解决由于字符编码方法不一致而导致的乱码问题。 - UTF-8 是最受欢迎的 Unicode 编码方法,通用性非常好。它是一种变长的编码方法,具有很好的扩展性,有效提升了存储空间的使用效率。UTF-16 和 UTF-32 是等长的编码方法。在编码中文时,UTF-16 比 UTF-8 的占用空间更小。Java, C# 等编程语言默认使用 UTF-16 编码。 diff --git a/docs/chapter_graph/graph_operations.md b/docs/chapter_graph/graph_operations.md index f30a254be..675b22575 100644 --- a/docs/chapter_graph/graph_operations.md +++ b/docs/chapter_graph/graph_operations.md @@ -95,7 +95,7 @@ - **添加边**:在顶点对应链表的末尾添加边即可,使用 $O(1)$ 时间。因为是无向图,所以需要同时添加两个方向的边。 - **删除边**:在顶点对应链表中查找并删除指定边,使用 $O(m)$ 时间。在无向图中,需要同时删除两个方向的边。 - **添加顶点**:在邻接表中添加一个链表,并将新增顶点作为链表头节点,使用 $O(1)$ 时间。 -- **删除顶点**:需遍历整个邻接表,删除包含指定顶点的所有边,使用 $O(1)$ 时间。 +- **删除顶点**:需遍历整个邻接表,删除包含指定顶点的所有边,使用 $O(n + m)$ 时间。 - **初始化**:在邻接表中创建 $n$ 个顶点和 $2m$ 条边,使用 $O(n + m)$ 时间。 === "初始化邻接表"