news 2026/7/12 8:07:11

数据结构:(四)空间的艺术——数组压缩与广义表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据结构:(四)空间的艺术——数组压缩与广义表

目录

一、 数组:从逻辑维度到物理地址

1. 行优先 (Row-major) 与 列优先 (Column-major)

二、 特殊矩阵的压缩存储

1. 对称矩阵 ()

2. 三角矩阵

三、 稀疏矩阵 (Sparse Matrix):变废为宝

1. 三元组顺序表 (Triple Oracle)

2. 十字链表 (Cross List) —— 终极优化

四、 广义表 (Generalized Lists):递归的线性表

1. 核心操作:GetHead 与 GetTail

五、 今日深度总结表

避坑指南:


一、 数组:从逻辑维度到物理地址

数组是随机存取结构。在内存中,多维数组必须映射为一维线性地址。

1. 行优先 (Row-major) 与 列优先 (Column-major)

  • 行优先(C语言、严版教材默认):先存第一行,再存第二行。

  • 二维数组地址计算公式(以的二维数组为例,下标从 0 开始):

    详细注释代表跳过了前行的所有元素,代表在当前行偏移的位置,是每个元素占用的字节数。


二、 特殊矩阵的压缩存储

对于有规律的矩阵,我们只存“有效”部分,其余部分通过数学公式计算得出。

1. 对称矩阵 ()

只需存储下三角(含对角线)的个元素。

  • 映射公式:将二维下标映射到一维数组

    (当时)

2. 三角矩阵

上(下)三角全是常数。同样只存有效的一半加一个位置存常数


三、 稀疏矩阵 (Sparse Matrix):变废为宝

当矩阵中绝大多数元素为 0 时(非零元素占比通常 < 5%),直接存储会造成内存极大浪费。

1. 三元组顺序表 (Triple Oracle)

  • 原理:每个非零元素存为一个三元组(行下标, 列下标, 值)

  • 缺点:失去了随机存取特性。

  • 高频考点快速转置算法。传统的行列互换后,为了保持三元组按行序排列,需要预先统计每列非零个数,计算出转置后每行应放的起始位置。

2. 十字链表 (Cross List) —— 终极优化

  • 结构:每个非零元素是一个节点,包含五个域:行、列、值、行指针(right)、列指针(down)

  • 优势:在进行矩阵加法、乘法等动态运算时,十字链表无需像三元组那样频繁移动元素,效率极高。


四、 广义表 (Generalized Lists):递归的线性表

广义表是线性表的推广,它的元素可以是原子(单个数据),也可以是子表

1. 核心操作:GetHead 与 GetTail

这是考试中最容易丢分的地方:

  • GetHead(L):取出的第一个元素。可以是原子,也可以是子表。

  • GetTail(L)除去第一个元素外,剩下的元素组成的

    ⚠️ 必考例题

    ——注意:尾部一定带括号,是一个表!


五、 今日深度总结表

存储对象核心挑战解决方案适用场景
稠密矩阵快速存取顺序存储(行优先)基础科学计算
对称/对角矩阵冗余数据多下三角/对角压缩物理模拟、结构分析
稀疏矩阵0 元素极多三元组、十字链表社交网络邻接矩阵、推荐算法
广义表结构不规则链式存储(头尾链)Lisp 语言、递归逻辑表示

避坑指南:

  1. 公式偏移:一定要看清题目下标是从 0 还是 1 开始。如果是从 1 开始,地址公式变为:

  2. 转置细节:三元组转置时,如果不使用“快速转置”,时间复杂度会升至 $O(n \times t)$($t$ 为非零元素个数),这在考研大题中是扣分项。

  3. 广义表空表。空表也是表,不能写“无”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 14:36:29

HoRain云--XGBoost原理深度解析与实战指南

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …

作者头像 李华
网站建设 2026/6/26 10:18:08

软件是如何驱动硬件的

要理解软件如何驱动硬件&#xff0c;我们需要从计算机的底层原理说起。这是一个从抽象到具体、从高级到低级的完整链条。简单来说&#xff0c;软件驱动硬件的过程可以概括为&#xff1a;软件通过操作系统&#xff0c;将高级指令转化为硬件能够理解和执行的电子信号。下面我们分…

作者头像 李华
网站建设 2026/7/1 20:38:19

2026毕设ssm+vue美妆商城系统论文+程序

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。 系统程序文件列表 开题报告内容 一、选题背景 关于电商平台的研究&#xff0c;现有研究主要以综合类电商平台或单一品牌的垂直电商为主&#xff0c;专门针对美妆品类…

作者头像 李华
网站建设 2026/6/30 18:04:18

亲测好用自考必看TOP8AI论文网站深度测评

亲测好用自考必看TOP8AI论文网站深度测评 2026年自考论文写作工具测评&#xff1a;为何值得一看&#xff1f; 随着自考人数逐年增长&#xff0c;论文写作成为每位考生必须面对的挑战。在AI技术迅速发展的背景下&#xff0c;各类AI论文网站层出不穷&#xff0c;但质量参差不齐&a…

作者头像 李华
网站建设 2026/6/28 23:31:25

如何在GPU算力服务器上使用深度学习加速算法优化图像生成任务,提升AI艺术创作的质量与速度?

在现代AI艺术创作领域&#xff0c;高质量图像生成模型&#xff08;如扩散模型、生成对抗网络&#xff09;对算力提出了极高要求。随着模型规模从百万级参数扩展到数十亿甚至百亿级&#xff0c;单纯依赖通用GPU显存和浮点运算性能已难以实现低延迟和高吞吐。A5数据借助专业GPU算…

作者头像 李华
网站建设 2026/7/1 17:02:12

“十五五”数字化智能工厂MES数字化一体化解决方案:项目愿景、L1-L5级业务蓝图、MES核心功能(MES九大子系统)、实施方法

本方案旨在为“十五五”智能工厂构建以MES为核心的数据驱动运营中枢&#xff0c;通过L1-L5级业务蓝图打通从设备到决策的全链路集成。核心围绕MES九大子系统实现生产全要素的数字化管控&#xff0c;并采用“总体规划、分步试点、敏捷迭代”的实施方法&#xff0c;确保项目稳健落…

作者头像 李华