 Hello 算法 1.0.0 C语言版它为数据的有序组织提供了蓝图,算法得以在此基础上生动起来。 第 3 章 数据结构 hello‑algo.com 53 3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向 非线性数据结构可以进一步划分为树形结构和网状结构。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 图 3‑1 线性数据结构与非线性数据结构 3.1.2 物理结构:连续与分散 当算法程序运行时,正在处理的数据主要存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方 块都包含一块内存空间。我们可以将内存想象成一个巨大的 Excel 表格,其中每个单元格都可以存储一定大 及地址空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则无法被其他程序同时使用了。因此在数据结 构与算法的设计中,内存资源是一个重要的考虑因素。比如,算法所占用的内存峰值不应超过系统剩余空闲 内存;如果缺少连续大块的内存空间,那么所选用的数据结构必须能够存储在分散的内存空间内。 如图 3‑3 所示,物理结构反映了数据在计算机内存中的存储方0 码力 | 390 页 | 17.63 MB | 1 年前3 Hello 算法 1.0.0 C语言版它为数据的有序组织提供了蓝图,算法得以在此基础上生动起来。 第 3 章 数据结构 hello‑algo.com 53 3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向 非线性数据结构可以进一步划分为树形结构和网状结构。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 图 3‑1 线性数据结构与非线性数据结构 3.1.2 物理结构:连续与分散 当算法程序运行时,正在处理的数据主要存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方 块都包含一块内存空间。我们可以将内存想象成一个巨大的 Excel 表格,其中每个单元格都可以存储一定大 及地址空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则无法被其他程序同时使用了。因此在数据结 构与算法的设计中,内存资源是一个重要的考虑因素。比如,算法所占用的内存峰值不应超过系统剩余空闲 内存;如果缺少连续大块的内存空间,那么所选用的数据结构必须能够存储在分散的内存空间内。 如图 3‑3 所示,物理结构反映了数据在计算机内存中的存储方0 码力 | 390 页 | 17.63 MB | 1 年前3
 Hello 算法 1.1.0 C语言版它为数据的有序组织提供了蓝图,算法得以在此基础上生动起来。 第 3 章 数据结构 hello‑algo.com 53 3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向 非线性数据结构可以进一步划分为树形结构和网状结构。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 图 3‑1 线性数据结构与非线性数据结构 3.1.2 物理结构:连续与分散 当算法程序运行时,正在处理的数据主要存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方 块都包含一块内存空间。我们可以将内存想象成一个巨大的 Excel 表格,其中每个单元格都可以存储一定大 空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则无法被其他程序同时使用了。因此在数据结 构与算法的设计中,内存资源是一个重要的考虑因素。比如,算法所占用的内存峰值不应超过系统剩余空闲 内存;如果缺少连续大块的内存空间,那么所选用的数据结构必须能够存储在分散的内存空间内。 如图 3‑3 所示,物理结构反映了数据在计算机内存中的存储方0 码力 | 391 页 | 18.51 MB | 1 年前3 Hello 算法 1.1.0 C语言版它为数据的有序组织提供了蓝图,算法得以在此基础上生动起来。 第 3 章 数据结构 hello‑algo.com 53 3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向 非线性数据结构可以进一步划分为树形结构和网状结构。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 图 3‑1 线性数据结构与非线性数据结构 3.1.2 物理结构:连续与分散 当算法程序运行时,正在处理的数据主要存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方 块都包含一块内存空间。我们可以将内存想象成一个巨大的 Excel 表格,其中每个单元格都可以存储一定大 空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则无法被其他程序同时使用了。因此在数据结 构与算法的设计中,内存资源是一个重要的考虑因素。比如,算法所占用的内存峰值不应超过系统剩余空闲 内存;如果缺少连续大块的内存空间,那么所选用的数据结构必须能够存储在分散的内存空间内。 如图 3‑3 所示,物理结构反映了数据在计算机内存中的存储方0 码力 | 391 页 | 18.51 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 C语言 版基础上生动起来。 第 3 章 数据结构 www.hello‑algo.com 53 3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向 非线性数据结构可以进一步划分为树形结构和网状结构。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 图 3‑1 线性数据结构与非线性数据结构 3.1.2 物理结构:连续与分散 当算法程序运行时,正在处理的数据主要存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方 块都包含一块内存空间。我们可以将内存想象成一个巨大的 Excel 表格,其中每个单元格都可以存储一定大 空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则通常无法被其他程序同时使用了。因此在数 据结构与算法的设计中,内存资源是一个重要的考虑因素。比如,算法所占用的内存峰值不应超过系统剩余 空闲内存;如果缺少连续大块的内存空间,那么所选用的数据结构必须能够存储在分散的内存空间内。 如图 3‑3 所示,物理结构反映了数据在计算机内存中的存储0 码力 | 392 页 | 18.52 MB | 10 月前3 Hello 算法 1.2.0 简体中文 C语言 版基础上生动起来。 第 3 章 数据结构 www.hello‑algo.com 53 3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向 非线性数据结构可以进一步划分为树形结构和网状结构。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 图 3‑1 线性数据结构与非线性数据结构 3.1.2 物理结构:连续与分散 当算法程序运行时,正在处理的数据主要存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方 块都包含一块内存空间。我们可以将内存想象成一个巨大的 Excel 表格,其中每个单元格都可以存储一定大 空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则通常无法被其他程序同时使用了。因此在数 据结构与算法的设计中,内存资源是一个重要的考虑因素。比如,算法所占用的内存峰值不应超过系统剩余 空闲内存;如果缺少连续大块的内存空间,那么所选用的数据结构必须能够存储在分散的内存空间内。 如图 3‑3 所示,物理结构反映了数据在计算机内存中的存储0 码力 | 392 页 | 18.52 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 C语言 版非線性資料結構可以進一步劃分為樹形結構和網狀結構。 ‧ 樹形結構:樹、堆積、雜湊表,元素之間是一對多的關係。 ‧ 網狀結構:圖,元素之間是多對多的關係。 圖 3‑1 線性資料結構與非線性資料結構 3.1.2 物理結構:連續與分散 當演算法程式執行時,正在處理的資料主要儲存在記憶體中。圖 3‑2 展示了一個計算機記憶體條,其中每個 黑色方塊都包含一塊記憶體空間。我們可以將記憶體想象成一個巨大的 Excel 位址空間、記憶體管理、快取機制、虛擬記憶體和物理記憶體等概念。 記憶體是所有程式的共享資源,當某塊記憶體被某個程式佔用時,則通常無法被其他程式同時使用了。因此 在資料結構與演算法的設計中,記憶體資源是一個重要的考慮因素。比如,演算法所佔用的記憶體峰值不應 超過系統剩餘空閒記憶體;如果缺少連續大塊的記憶體空間,那麼所選用的資料結構必須能夠儲存在分散的 記憶體空間內。 如圖 3‑3 所示,物理結構反映了資料在計算機 所示,物理結構反映了資料在計算機記憶體中的儲存方式,可分為連續空間儲存(陣列)和分散空 間儲存(鏈結串列)。物理結構從底層決定了資料的訪問、更新、增刪等操作方法,兩種物理結構在時間效率 和空間效率方面呈現出互補的特點。 第 3 章 資料結構 www.hello‑algo.com 55 圖 3‑3 連續空間儲存與分散空間儲存 值得說明的是,所有資料結構都是基於陣列、鏈結串列或二者的組合實現的。例如,堆疊和佇列既可以使用0 码力 | 392 页 | 18.83 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 C语言 版非線性資料結構可以進一步劃分為樹形結構和網狀結構。 ‧ 樹形結構:樹、堆積、雜湊表,元素之間是一對多的關係。 ‧ 網狀結構:圖,元素之間是多對多的關係。 圖 3‑1 線性資料結構與非線性資料結構 3.1.2 物理結構:連續與分散 當演算法程式執行時,正在處理的資料主要儲存在記憶體中。圖 3‑2 展示了一個計算機記憶體條,其中每個 黑色方塊都包含一塊記憶體空間。我們可以將記憶體想象成一個巨大的 Excel 位址空間、記憶體管理、快取機制、虛擬記憶體和物理記憶體等概念。 記憶體是所有程式的共享資源,當某塊記憶體被某個程式佔用時,則通常無法被其他程式同時使用了。因此 在資料結構與演算法的設計中,記憶體資源是一個重要的考慮因素。比如,演算法所佔用的記憶體峰值不應 超過系統剩餘空閒記憶體;如果缺少連續大塊的記憶體空間,那麼所選用的資料結構必須能夠儲存在分散的 記憶體空間內。 如圖 3‑3 所示,物理結構反映了資料在計算機 所示,物理結構反映了資料在計算機記憶體中的儲存方式,可分為連續空間儲存(陣列)和分散空 間儲存(鏈結串列)。物理結構從底層決定了資料的訪問、更新、增刪等操作方法,兩種物理結構在時間效率 和空間效率方面呈現出互補的特點。 第 3 章 資料結構 www.hello‑algo.com 55 圖 3‑3 連續空間儲存與分散空間儲存 值得說明的是,所有資料結構都是基於陣列、鏈結串列或二者的組合實現的。例如,堆疊和佇列既可以使用0 码力 | 392 页 | 18.83 MB | 10 月前3
共 4 条
- 1













