数据结构::矩阵(二)--稀疏矩阵

本文介绍了稀疏矩阵的概念,强调在有效值远少于无效值时使用压缩存储,通过{row,col,value}三元组按行优先顺序存储有效数据。详细讲述了如何使用vector实现存储,并讨论了两种转置方法:普通转置和快速转置,其中快速转置通过预先计算每行元素个数和起始位置来提高效率。" 77749233,7325136,ReentrantLock在生产者消费者模型中的应用解析,"['多线程', 'reetrantlock', '并发控制', 'Java并发', '锁机制']
摘要由CSDN通过智能技术生成

【稀疏矩阵】:

定义:在N*N的矩阵中有效值的个数远小于无效值的个数,且这些数据的分布没有规律(下面这张图就是稀疏矩阵的一个例子:)


【稀疏矩阵的压缩存储】:

   1)稀疏矩阵的存储压缩存储值存储极少数的有效数据。使用{row,col,value}三元组存储每一个有效数据,三元组按原矩阵中的位置,以行优先级先后顺序依次存放。

template<typename T>
struct Tripe
{
	Tripe()
	{}   //为resize()的第二个参数创建
	Tripe<T>(const T& x,size_t row,size_t col)
		:_value(x)
		,_row(row)
		,_col(col)
	{}
	T _value;   
	size_t _row;
	size_t _col;
};

接下来我们就将这个三元组存储在数组里,因为我们在开辟一个空间的时候,我们并不知道要开多大,会造成很不方便,所以这里我们就用vector来进行存储,在存储的时候直接调用尾插。

tem
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值