当前位置: 首页 > news >正文

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

目录

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

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. 广义表空表。空表也是表,不能写“无”。

http://www.jsqmd.com/news/316376/

相关文章:

  • HoRain云--C++异常处理:构建稳定程序的关键
  • HoRain云--Spring与SpringBoot:核心区别与选型指南
  • HoRain云--Java流程控制:从条件到循环全解析
  • Open Code 最常见的 4 种用法拆开讲清楚
  • 2026年国内知名的投影机出租供应厂家排名,水幕投影机出租/50000流明投影机,投影机出租生产厂家哪家靠谱
  • 12 动态规划
  • 国内AI开发者,如何继续使用Claude?一文说清3种主流方案
  • 计算机毕业设计hadoop+spark+hive地震预测系统 地震数据可视化分析 大数据毕业设计(源码+LW文档+PPT+讲解)
  • 百考通AI数据分析报告服务:一键生成深度洞察,让数据为您清晰代言
  • 深度测评10个AI论文软件,本科生轻松搞定毕业论文!
  • 把Moltbot(Clawdbot)部署到阿里云服务器上,让这个AI员工24小时替你打工
  • 永生代码测试:数字永生系统的崩溃应急预案
  • 【ACM出版 | EI检索】2026 年大数据与智能制造国际学术会议(BDIM 2026)
  • 2026最新华为GT6二手智能手表回收价格,支持全国上门回收
  • 技术日报|智能体框架pi-mono登顶日增467星,PS2静态重编译器与HashiCorp Vault霸榜前三
  • 发道养发加盟培训内容
  • Vue 3 中 Watch 与 WatchEffect 的差异与使用场景
  • 评测推荐硒片什么牌子效果好?2026六款高品质硒片推荐,第一款全家适配
  • 2026年中国网站搭建公司哪家强?TOP10实力派官网设计制作服务商深度洞察推荐
  • 锌硒片能提高男人功能吗?十大锌硒片多维度评测!第一名计善堂天然酵母硒+柠檬酸锌高效安全可靠
  • ssd上的pg都在ssd上,hdd上的pg都在hdd上。从规则上来看,数据在hdd和ssd上是隔离的,那数据是如何实现迁移的
  • 补锌硒对备孕有帮助吗?锌硒片哪个牌子值得推荐?最新锌硒片十大品牌选购指南权威报告
  • 聊聊龙骨机设备供应商,南昌、济南性价比高的厂家有哪些
  • 分期乐购物额度“套现”陷阱大揭秘:我的血泪教训与合规变现之道
  • 2026电动工具品牌推荐:SATA世达“ChiE挈”智能锂电平台助力工业级高效作业
  • 2026最新国内电子签名排行:国内电子签名软件哪家强?
  • 深入探讨佰诚公考,课程体系完善吗 附哈尔滨培训公司排名
  • 算法与数据结构,到底是怎么节省时间和空间的
  • 软件是如何驱动硬件的
  • 2026年法律AI老牌软件性价比分析,北京公司哪家更靠谱