- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
稀疏矩阵数据结构实验报告
目 录
1.需求分析 1
2.概要设计 2
2.1链表对稀疏矩阵进行定义 2
2.3程序一共有五个功能 2
3.详细设计 3
3.1稀疏矩阵存储算法分析 3
3.2稀疏矩阵各运算算法分析 3
4.调试分析 8
4.1调试过程中的问题及解决方法 8
4.2算法的时间复杂度和空间复杂 8
4.3经验和体会 8
5.用户使用说明 9
6.测试结果 10
6.1程序主界面 10
6.2其他函数操作界面显示 10
参考文献 15
致谢 16
1.需求分析
矩阵在日常生活中应用广泛,尤其是有些特殊矩阵的运算。但是在实际应用中有一种矩阵,在m×n的矩阵中有t个非零元素,且t远小于m×n,我们这样的矩阵被称为稀疏矩阵。由于这类矩阵中通常零元素是没有规律的,为了能够找到相应的元素,仅存储非零元素的值是不行的,还要存储其所在的行和列等信息。
本程序主要的任务是创建稀疏矩阵,并且利用C++算法程序实现相应的运算(转置,加法,减法,乘法)
(1)输入的形式以及范围:键盘输入符合要求的稀疏矩阵。
(2)输出形式:最终运算结果以矩阵的形式输出。
(3)程序功能实现:输入矩阵通过程序运算出相应的转置矩阵以及两个符合要求的矩阵的加减乘除法的运算。
(4)测试数据:如果输入正确,程序会显示最后的运算结果;否则错误时则会返回上层。
2.概要设计
要存储稀疏矩阵并且进行运算,那么就要了解稀疏矩阵的存储结构,这里采用链表的形式存储稀疏矩阵并进行运算。
2.1链表对稀疏矩阵进行定义
typedef struct OLNode
{ // 定义链表元素
int i,j;
int e;
struct OLNode *next; // 该非零元所在行表和列表的后继元素
}OLNode,*OLink;
typedef struct
{ // 定义链表对象结构体
OLink *head; //头指针
int mu,nu,tu; // 行数,列数,和非零元素个数
}CrossList;
2.3程序一共有五个功能
用CreateSMatrix_OL(M)函数来实现稀疏矩阵的存储,用OutPutSMatrix_OL(M)函数实现稀疏矩阵的输出。
使用TransposeSMatrix( )函数实现稀疏矩阵的转置操作。
使用AddSMatrix( )函数实现稀疏矩阵的加法运算。
使用SubSMatrix( )函数实现稀疏矩阵的减法运算。
使用MultSMatrix ( )函数实现稀疏矩阵的乘法运算。
在TransposeSMatrix( ),AddSMatrix( ),SubSMatrix( ),MultSMatrix ( )各函数中又调用到矩阵的存入和输出函数。
图2-1 程序主要函数关系
3.详细设计
3.1稀疏矩阵存储算法分析
链表存储稀疏矩阵的基本思想是:创建一个数据域还有一个指针域,数据域用来存储该非零元素的行、列、数值;指针域next指向下一结点。如图3-1 所示
图3-1 链表的结点结构
把稀疏矩阵的三元素(行数、列数、非零元素个数)放在头结点中,头结点的next指向第一个结点。数据结点中数据域存储行值、列值、数值,指针指向下一个结点,这样把一个个的结点连接起来。
在此以稀疏矩阵 为例,画出十字链表存储的结构图
如图3-2 :
图3-2 十字链表
3.2稀疏矩阵各运算算法分析
根据整个程序的功能分析,该稀疏矩阵程序需要实现以下运算功能:
(1)稀疏矩阵的转置
(2)稀疏矩阵的乘法
(3)稀疏矩阵的加法
(4)稀疏矩阵的减法
根据整个函数的具体分析,从中可以剖析出程序具有以下函数
表3-1 程序中的函数列表
相应函数 相应功能 CreateSMatrix_OL(CrossList M) 用链表的方式存储稀疏矩阵 OutPutSMatrix_OL(CrossList T) 读取用链表存储的稀疏矩阵 TransposeSMatrix( ) 转置矩阵 MultSMatrix ( ) 稀疏矩阵的乘法 AddSMatrix() 稀疏矩阵的加法 SubSMatrix() 稀疏矩阵的减法 3.2.1 TransposeSMatrix( )函数
该函数是对输入的稀疏矩阵进行转置,设原矩阵为M是一个m×n稀疏矩阵,那么其转置矩阵N就是一个n×m的稀疏矩阵。只要把稀疏矩阵M的行、列转化为T的列、行。
调用CreateSMatrix_OL(CrossList M)函数读取要转置的矩阵M,定义转置后的矩阵N。复制矩阵M的头结点,设当前指针为
您可能关注的文档
- 睢县历史文化.doc
- 知名企业案例--生产效率管理和人员计算.ppt
- 知道做到知行合一.pptx
- 石秀GX914阳光班家长会PPT - 幻灯片1.ppt
- 瞳距仪标准检定装置.doc
- 石膏湿法烟气脱硫工程施工方案.doc
- 石油金属结构制作工高级.doc
- 石英晶体滤波器课件2.ppt
- 石鼓山隧道专项施工方案.doc
- 矿区环境污染及污染源.doc
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 电气安全评估报告模板.docx VIP
- 2025学年人教版英语七年级下册单词默写表.docx VIP
- TB 10754-2018 高速铁路轨道工程施工质量验收标准 含2023修改单(2-2).pdf
- 《网络工程师》模拟考试题.doc VIP
- 脑梗塞中医辨证课件.pptx
- 解码国家安全智慧树知到期末考试答案章节答案2024年国际关系学院.docx VIP
- YB∕T 5305-2020 线缆套管用焊接钢管(可复制版).pdf
- 应用指南《GB_T23443-2024建筑装饰用铝单板》应用指南.pptx VIP
- CQC3703-2022 绿色能源消费评价技术规范-活动.pdf VIP
- 1.4 全面推进依法治国的六项重大任务(政策与法律法规 第五版).pptx VIP
文档评论(0)