数据结构与算法——第5章-数组和广义表-矩阵压缩存储(5.3)
一 概述
1 | 1.矩阵的压缩存储结构 |
二 矩阵的压缩存储结构
1 | 数据结构中,提供针对某些特殊矩阵的压缩存储结构。 |
三 对称矩阵
一、对称矩阵
1 | 图 1 的矩阵中,数据元素沿主对角线对应相等,这类矩阵称为对称矩阵。 |
二、下三角中的元素计算公式
1 | 对称矩阵的实现过程是,若存储下三角中的元素,只需将各元素所在的行标 i 和列标 j 代入下面的公式: |
三、上三角的元素计算公式
1 | 存储上三角的元素要将各元素的行标 i 和列标 j 代入另一个公式: |
四、计算示例
1 | 例如,在数组 skr[6] 中存储图 1 中的对称矩阵,则矩阵的压缩存储状态如图 3 所示(存储上三角和下三角的结果相同): |
五、从数组中提取矩阵相应位置的元素
1 | 注意,以上两个公式既是用来存储矩阵中元素的,也用来从数组中提取矩阵相应位置的元素。 |
四 上(下)三角矩阵
1 | 如图 4 所示,主对角线下的数据元素全部相同的矩阵为上三角矩阵(图 4a)),主对角线上元素全部相同的矩阵为下三角矩阵(图 4b))。 |
五 稀疏矩阵
5.1 稀疏矩阵
1 | 如图 5 所示,如果矩阵中分布有大量的元素 0,即非 0 元素非常少,这类矩阵称为稀疏矩阵。 |
5.2 稀疏矩阵存储信息
1 | 例如,存储图 5 中的稀疏矩阵,需存储以下信息: |
六 矩阵压缩存储的3种方式
1 | 对于以上 3 种特殊的矩阵,对阵矩阵和上下三角矩阵的实现方法是相同的,且实现过程比较容易,仅需套用上面给出的公式即可。 |
七 参考
- C语言中文网—矩阵(稀疏矩阵)压缩存储