编程珠玑 column 10

本文介绍了一种稀疏矩阵的有效存储方法,利用链表结构仅保存非零元素,并提出一种将两个对称矩阵融合到单一矩阵中的创新方案,以便于存储与计算。

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

主要介绍的稀疏矩阵的存储方式。没必要存储矩阵的每个点。只需存储不为0的值的点。使用一个数组来代表所有的列,一个链式表来代表给定列中的不为0的元素


该链式表可以定义成

struct Node p{

int pointnum;

int row;

Node *next
}



10.3

介绍了两个矩阵a,b,a与b的维度相同均为150*150。均表示均为表示两点之间距离的矩阵,比如a[i[[j]代表点i与点j之间的距离。很明显a,b矩阵为对称阵,且对角线元素为0


现用一个矩阵c来存储矩阵a与b

c的一块类似

————————

0 b[0,1] b[0,2] b[0,3]

a[1,0] 0 b[1,2] b[1,3]

a[2,0] a[2,1] 0 b[2,3]

a[3,0] a[3,1] a[3,2] 0


即矩阵c的元素为

i>j时

c[i][j]=a[i][j]

i<j时

c[i][j]=b[i][j]

i==j

c[i][j]=0


所以矩阵a的元素可以从c的元素中还原

a[i][j]=c[max(i,j)][min(i,j)]

矩阵b的元素可以以类似方式从c中还原


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值