Hello 算法 1.2.0 简体中文 TypeScript 版
流可能会被分成多个缓冲块并放入一个环形链表,以便实现无缝播放。 第 4 章 数组与链表 www.hello‑algo.com 79 4.3 列表 列表(list)是一个抽象的数据结构概念,它表示元素的有序集合,支持元素访问、修改、添加、删除和遍历 等操作,无须使用者考虑容量限制的问题。列表可以基于链表或数组实现。 ‧ 链表天然可以看作一个列表,其支持元素增删查改操作,并且可以灵活动态扩容。 ‧ 数 ‧ 链表通过更改引用(指针)实现高效的节点插入与删除,且可以灵活调整长度;但节点访问效率低、占 用内存较多。常见的链表类型包括单向链表、环形链表、双向链表。 ‧ 列表是一种支持增删查改的元素有序集合,通常基于动态数组实现。它保留了数组的优势,同时可以灵 活调整长度。 ‧ 列表的出现大幅提高了数组的实用性,但可能导致部分内存空间浪费。 ‧ 程序运行时,数据主要存储在内存中。数组可提供更高的 com 124 为了解决该问题,我们可以采用懒删除(lazy deletion)机制:它不直接从哈希表中移除元素,而是利用一个 常量 TOMBSTONE 来标记这个桶。在该机制下,None 和 TOMBSTONE 都代表空桶,都可以放置键值对。但不同的 是,线性探测到 TOMBSTONE 时应该继续遍历,因为其之下可能还存在键值对。 然而,懒删除可能会加速哈希表的性能退化。这是因为每次删除操作都会产生一个删除标记,随着0 码力 | 383 页 | 18.49 MB | 10 月前3Hello 算法 1.1.0 TypeScript版
流可能会被分成多个缓冲块并放入一个环形链表,以便实现无缝播放。 第 4 章 数组与链表 hello‑algo.com 79 4.3 列表 列表(list)是一个抽象的数据结构概念,它表示元素的有序集合,支持元素访问、修改、添加、删除和遍历 等操作,无须使用者考虑容量限制的问题。列表可以基于链表或数组实现。 ‧ 链表天然可以看作一个列表,其支持元素增删查改操作,并且可以灵活动态扩容。 ‧ 数 ‧ 链表通过更改引用(指针)实现高效的节点插入与删除,且可以灵活调整长度;但节点访问效率低、占 用内存较多。常见的链表类型包括单向链表、环形链表、双向链表。 ‧ 列表是一种支持增删查改的元素有序集合,通常基于动态数组实现。它保留了数组的优势,同时可以灵 活调整长度。 ‧ 列表的出现大幅提高了数组的实用性,但可能导致部分内存空间浪费。 ‧ 程序运行时,数据主要存储在内存中。数组可提供更高的 com 124 为了解决该问题,我们可以采用懒删除(lazy deletion)机制:它不直接从哈希表中移除元素,而是利用一个 常量 TOMBSTONE 来标记这个桶。在该机制下,None 和 TOMBSTONE 都代表空桶,都可以放置键值对。但不同的 是,线性探测到 TOMBSTONE 时应该继续遍历,因为其之下可能还存在键值对。 然而,懒删除可能会加速哈希表的性能退化。这是因为每次删除操作都会产生一个删除标记,随着0 码力 | 383 页 | 18.49 MB | 1 年前3Hello 算法 1.2.0 繁体中文 TypeScript 版
資料流可能會被分成多個緩衝塊並放入一個環形鏈結串列,以便實現無縫播放。 第 4 章 陣列與鏈結串列 www.hello‑algo.com 79 4.3 串列 串列(list)是一個抽象的資料結構概念,它表示元素的有序集合,支持元素訪問、修改、新增、刪除和走訪 等操作,無須使用者考慮容量限制的問題。串列可以基於鏈結串列或陣列實現。 ‧ 鏈結串列天然可以看作一個串列,其支持元素增刪查改操作,並且可以靈活動態擴容。 ‧ 鏈結串列透過更改引用(指標)實現高效的節點插入與刪除,且可以靈活調整長度;但節點訪問效率 低、佔用記憶體較多。常見的鏈結串列型別包括單向鏈結串列、環形鏈結串列、雙向鏈結串列。 ‧ 串列是一種支持增刪查改的元素有序集合,通常基於動態陣列實現。它保留了陣列的優勢,同時可以靈 活調整長度。 ‧ 串列的出現大幅提高了陣列的實用性,但可能導致部分記憶體空間浪費。 ‧ 程式執行時,資料主要儲存在記憶體中。陣列可提供更 hello‑algo.com 189 9.1 圖 圖(graph)是一種非線性資料結構,由頂點(vertex)和邊(edge)組成。我們可以將圖 ? 抽象地表示為一 組頂點 ? 和一組邊 ? 的集合。以下示例展示了一個包含 5 個頂點和 7 條邊的圖。 ? = {1, 2, 3, 4, 5} ? = {(1, 2), (1, 3), (1, 5), (2, 3), (2, 4), (2, 5)0 码力 | 384 页 | 18.80 MB | 10 月前3Hello 算法 1.0.0b5 TypeScript 版
hello‑algo.com 183 9.1 图 「图 graph」是一种非线性数据结构,由「顶点 vertex」和「边 edge」组成。我们可以将图 ? 抽象地表示为 一组顶点 ? 和一组边 ? 的集合。以下示例展示了一个包含 5 个顶点和 7 条边的图。 ? = {1, 2, 3, 4, 5} ? = {(1, 2), (1, 3), (1, 5), (2, 3), (2, 4), (2, 5) |? | ,因此使用 ?(|? |) 空 间。 第 9 章 图 hello‑algo.com 201 9.4 小结 1. 重点回顾 ‧ 图由顶点和边组成,可以被表示为一组顶点和一组边构成的集合。 ‧ 相较于线性关系(链表)和分治关系(树),网络关系(图)具有更高的自由度,因而更为复杂。 ‧ 有向图的边具有方向性,连通图中的任意顶点均可达,有权图的每条边都包含权重变量。 ‧ 邻接矩阵 回溯典型例题 回溯算法可用于解决许多搜索问题、约束满足问题和组合优化问题。 搜索问题:这类问题的目标是找到满足特定条件的解决方案。 ‧ 全排列问题:给定一个集合,求出其所有可能的排列组合。 ‧ 子集和问题:给定一个集合和一个目标和,找到集合中所有和为目标和的子集。 ‧ 汉诺塔问题:给定三个柱子和一系列大小不同的圆盘,要求将所有圆盘从一个柱子移动到另一个柱子, 每次只能移动一个圆盘,且不能将大圆盘放在小圆盘上。0 码力 | 378 页 | 30.70 MB | 1 年前3TypeScript Handbook(中文版)
Partial= { [P in keyof T]?: T[P]; }; type PartialPerson = Partial ; 映射类型是通过使用字面量类型的集合而生成的,并为新对象类型计算一组属性。 它们就像Python中的列表推导式,但不是在列表中产生新的元素,而是在类型中产 生新的属性。 除 Partial 外,映射类型可以表示许多有用的类型转换: mapToNumbers(): number[]; } } Array.prototype.mapToNumbers = function () { /* ... */ } 字符串字面量类型 接受一个特定字符串集合作为某个值的 API 并不少见. 举例来说, 考虑一个可以通过 控制动画的渐变让元素在屏幕中滑动的 UI 库: declare class UIElement { animate(options: choose2('hello', 42); // OK, d: string|number 更好的类型推断 TypeScript Handbook(中文版) 212 TypeScript 1.4 当一个集合里有多种类型的值时,联合类型会为数组或其它地方提供更好的类型推 断: var x = [1, 'hello']; // x: Array x[0] = 'world'; 0 码力 | 557 页 | 7.48 MB | 1 年前3TypeScript 4.0 使用手册
radius: 100, 19. } 另一个变化是枚举类型本身变成了每个枚举成员的_联合_。 虽然我们还没有讨论联合类型,但你只要 知道通过联合枚举,类型系统能够利用这样一个事实,它可以知道枚举里的值的集合。 因此, TypeScript能够捕获在比较值的时候犯的愚蠢的错误。 例如: 联合枚举与枚举成员的类型 枚举 - 154 - 本文档使用 书栈网 · BookStack.CN 构建 1. 它的语法与索引签名的语法类型,内部使用了 for .. in 。 具有三个部分: 1. 类型变量 K ,它会依次绑定到每个属性。 2. 字符串字面量联合的 Keys ,它包含了要迭代的属性名的集合。 3. 属性的结果类型。 在个简单的例子里, Keys 是硬编码的属性名列表并且属性类型永远是 boolean ,因此这个映射类 型等同于: 1. type Flags = { 2. 记住这点,命名空间在使用模块时几乎没 什么价值。 在组织方面,命名空间对于在全局作用域内对逻辑上相关的对象和类型进行分组是很便利的。 例如, 在C#里,你会从 System.Collections 里找到所有集合的类型。 通过将类型有层次地组织在命名空 间里,可以方便用户找到与使用那些类型。 然而,模块本身已经存在于文件系统之中,这是必须的。 我们必须通过路径和文件名找到它们,这已经提供了一种逻辑上的组织形式。0 码力 | 683 页 | 6.27 MB | 1 年前3Hello 算法 1.0.0b1 TypeScript 版
,非常高效。 132 9. 图 9.1. 图 「图 Graph」是一种非线性数据结构,由「顶点 Vertex」和「边 Edge」组成。我们可将图 ? 抽象地表示为一 组顶点 ? 和一组边 ? 的集合。例如,以下表示一个包含 5 个顶点和 7 条边的图 ? = {1, 2, 3, 4, 5} ? = {(1, 2), (1, 3), (1, 5), (2, 3), (2, 4), (2, 5) res ,哈希表 visited 顶点数量最多为 |? | ,递归深度最大为 |? | ,因此使用 ?(|? |) 空 间。 9.4. 小结 ‧ 图由顶点和边组成,可以表示为一组顶点和一组边构成的集合。 ‧ 相比线性关系(链表)和分治关系(树),网络关系(图)的自由度更高,也从而更为复杂。 ‧ 有向图的边存在方向,连通图中的任意顶点都可达,有权图的每条边都包含权重变量。 ‧ 邻接矩阵使用方0 码力 | 186 页 | 14.71 MB | 1 年前3
共 7 条
- 1