c语言稀疏矩阵的存储,C语言:数据结构-稀疏矩阵的压缩存储

https://m.toutiaocdn.com/group/6712258385510662667/?app=news_article×tamp=1562855219&req_id=201907112226580100230300187166DEA&group_id=6712258385510662667

(1)稀疏矩阵的特点

在一个m×n的矩阵中,设矩阵中有i个元素不为零,并令△=i/(m×n),称△为稀疏因子。通常当△≤0.05时。认为该矩阵为稀疏矩阵。

对这类矩阵实现压缩存储的基本思路是只需要存储其非零元素,但由于稀疏矩阵中零元素的分布没有一定规律,所以必须同时记下零元素所在的行和列。才能对矩阵有效的缩压,并能正确的恢复它。

(2)稀疏矩阵的压缩存储原理

只存储非零元素ai,j和相应的行、列序号i、j。具体方法:对稀疏矩阵中每一个非零元素设定一个三元组(i,j,ai,j),将所有三元组按行优先排列,组成一个三元组表(线性表)。只要存储三元组表和该矩阵的行、列数,就能唯一确定该矩阵。

例5.8 按稀疏矩阵的压缩存储方法,求矩阵A的存储信息。

稀疏矩阵A

分析:设左上角的元素所在位置为第1行第1列,矩阵的行、列及非零元素个数为:(5,6,6)相应的三元组表为:(1,2,12)(1,3,9)(3,1,3)(3,6,14)(4,3

你可能感兴趣的:(c语言稀疏矩阵的存储)