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

本文介绍了稀疏矩阵的概念,当矩阵的非零元素占比小于5%时,称为稀疏矩阵。在C语言中,可以通过存储非零元素的三元组(行、列、值)来实现压缩存储。详细讲解了如何构造三元组表,并通过结构体描述稀疏矩阵的存储结构。此外,还展示了如何通过算法实现稀疏矩阵转置,确保转置后的三元组表按行序为主序存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://m.toutiaocdn.com/group/6712258385510662667/?app=news_article&timestamp=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的存储信息。

165799785_1_20190711102948350

稀疏矩阵A

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

(3)存储方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值