数据与算法精品教学(陈健生)实验二:稀疏矩阵存储和计算.pdfVIP

数据与算法精品教学(陈健生)实验二:稀疏矩阵存储和计算.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二:稀疏矩阵存储和计算 导引 本次实验的核心是稀疏矩阵,其最大特点即绝大部分元素为零。在科学与工程领域经常 会与其打交道,例如:压缩感知、网络理论,求解线性模型等。在实际应用中,我们往往需 要针对稀疏矩阵的特点,精心设计数据结构和算法,只有这样才能实现有效的存储和计算。 在计算机里,三元组是稀疏矩阵常见的表示方式:每个非零元素以三元组(行数,列数, 值)的方式表示,稀疏矩阵用其所有非零元素的三元组构成的表,以及矩阵的大小表示。 例如稀疏矩阵  1 -1 0 -3 0   -2 5 0 0 0   0 0 4 6 4    -4 0 2 7 0   0 8 0 0 -5   的三元组表示为: 1,1,1 ,1,2,-1 ,1,4,-3 ,2,1,-2 ,2,2,5 ,3,3,4 ,3,4,6 ,3,5,4                 4,1 ,-4 ,4 ,3 ,2 ,4 ,4 ,7 ,5 ,2 ,8 ,5 ,5 ,-5           那么如何有效方便地在计算机里存储组织这些三元组呢?常见的有两种做法:  三元组表: 一种容易想到的方法是,用线性表 (顺序表或单链表) 串联这些元组对象。相比于 二维数组,简化了存储模型, 但是却会增加实现矩阵操作, 比如转置、加、乘的复 杂性。  十字链表: 为了更快速地实现矩阵各种操作,我们给每个非零元素节点再加两个指针(一个横 着方向的,一个竖直方向的),这样的话我们可以既沿着列方向访问该元素,也可 以沿着行方向,从而大大提高我们的效率。这就是十字链表诞生的原因,从这里也 可看出十字链表是以单链表为基础的。 当然,不论你最终选择那种数据结构, 本实验的目的是为了巩固大家对线性表的理解和 基本操作的实现。因此在写程序之前, 希望大家确信自己熟悉单链表等数据结构, 熟悉基本 操作的逻辑。链表是最简单的数据结构之一, 由于实验要求大家 C/C++ 语言, 所以同学们 必须直面 C 语言里最危险的东西——指针,不过真正的勇士是敢于直面任何挑战的,相信 经过本次实验,同学们会泰然自若地面对指针。 本次实验必须选择使用上面两种数据结构中的一种(不过,通过上面的分析,大家应该 明白哪种结构更好了吧),在文档的最后会提供一些对大家进行本次实验有帮助的一些资料。 实验描述 你需要自己设计、实现稀疏矩阵的数据结构 (存储结构和逻辑结构)。基于你的设计, 你的稀疏矩阵需要有以下的函数接口 (功能):  能够修改 (访问) 矩阵中元素的值  两个矩阵的加法运算得到一个新矩阵  两个矩阵的乘法运算得到一个新矩阵 具体流程如下:  程序一开始, 读入一个稀疏矩阵 A (具体格式参见下面的输入描述和样例)  计算 A 矩阵的转置, 得到矩阵 B, 打印 B 矩阵  计算 A+B 的得到一个新矩阵 C, 打印 C 矩阵  计算 A*B 矩阵得到一个新矩阵

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档