- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、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
- 2025秋九年级英语全册Unit2Ithinkthatmooncakesaredelicious课时3SectionAGrammarFocus_4c习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit5WhataretheshirtsmadeofSectionA合作探究二课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit2Ithinkthatmooncakesaredelicious课时4SectionB1a_1d习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit1Howcanwebecomegoodlearners课时3SectionAGrammarFocus_4c习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit5Whataretheshirtsmadeof课时4SectionB1a_1e课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit3Couldyoupleasetellmewheretherestroomsare课时3SectionAGrammarFocus_4c课件新版人教新目标版.pptx
最近下载
- 鸿业软件限时版pipingl管立得用户手册.pdf
- 试验检测监理细则.doc VIP
- 建设工程纠纷法律培训课件.pptx VIP
- 2025人教版英语七年级上册全册语法综合练习100题( 学生版+解析版).docx VIP
- 小学英语特色作业研究结题报告.docx VIP
- 省级优秀课件综合与实践活动度量衡.pptx VIP
- 2016食品安全国家标准食品中放射性物质检验总则.pdf VIP
- 职业技术学院宠物养护与经营专业人才培养方案.pdf VIP
- 预防校园欺凌安全知识.pptx VIP
- “成于大气 信达天下” ———成信校史课程知到智慧树期末考试答案题库2025年成都信息工程大学.docx VIP
原创力文档


文档评论(0)