数据结构课程设计报告--稀疏矩阵运算器

数据结构课程设计报告--稀疏矩阵运算器

ID:12289554

大小:197.71 KB

页数:15页

时间:2018-07-16

数据结构课程设计报告--稀疏矩阵运算器_第1页
数据结构课程设计报告--稀疏矩阵运算器_第2页
数据结构课程设计报告--稀疏矩阵运算器_第3页
数据结构课程设计报告--稀疏矩阵运算器_第4页
数据结构课程设计报告--稀疏矩阵运算器_第5页
资源描述:

《数据结构课程设计报告--稀疏矩阵运算器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、闽江学院数据结构课程设计报告题目:稀疏矩阵运算器院系:计算机科学系专业班级:10计算机科学与技术(网络工程)学号:学生姓名:指导教师:王润鸿2011年12月23日15目录:1、分析问题和确定解决方案…………………………31.1问题描述……………………………31.2输入的形式和输入值的范围……………………31.3输出的形式………………………………31.4程序所能达到的功能……………………………31.5测试数据………………………………31.6确定解决方案………………………………41.7所有抽象数据类型的定义………………………

2、……42、详细设计……………………………52.1稀疏矩阵加法运算思路……………………………52.2稀疏矩阵减法运算思路………………………………72.3稀疏矩阵乘法运算思路………………………………92.4创建稀疏矩阵………………………………113、系统调试与测试……………………………123.1程序的菜单界面………………………………123.2实现加法运算………………………………123.3实现减法运算………………………………133.4实现乘法运算………………………………144、结果分析……………………………………154.1、算

3、法的时空分析………………………………154.2、经验和体会………………………………155、参考文献………………………………15151、分析问题和确定解决方案1.1问题描述稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。用三元组实现稀疏矩阵的相加、相减,相乘;1.2输入的形式和输入值的范围以三元组的形式输入,首先应输入矩阵的行数和列数,并判别给出的两个矩阵的行、列数对于所要求作的运算是否相匹配。可设矩阵的行数和列数均不超过20;例

4、如:输入的三元组为:((1,1,10),(2,3,9),(3,1,-1))其对应的稀疏矩阵为:1.3输出的形式运算结果的矩阵以通常的阵列形式输出;1.4程序所能达到的功能该程序可以实现以三元组形式输入两个矩阵,求出两个矩阵的和、差、积;并可根据输入的矩阵的行列数不同判别是否可以进行相加、减、乘,并重新输入正确的矩阵;1.5测试数据测试的数据及其结果如下:矩阵M矩阵N矩阵Q加法:+=减法:-=乘法:15X=1.6确定解决方案进入运算器界面后选择要实行的操作,按1实现矩阵相加,调用函数AddSMatrix,若输入的两个矩阵行

5、列数不相等,则提示输入错误,重新输入矩阵进行加法运算;按2实现矩阵相乘,若输入的第一矩阵的列数不等于第二个矩阵的行数,则提示输入错误,重新输入矩阵进行乘法运算;按3实现矩阵相减,若输入的两个矩阵行列数不相等,则提示输入错误,重新输入矩阵进行减法运算;按4退出程序以加法为例实现运算过程,如下:(稀疏矩阵的和为Q)第一个稀疏矩阵M的三元组为((1,1,10),(2,3,9),(3,1,-1))第二个稀疏矩阵N的三元组为((2,3,-1),(3,1,1),(3,3,-3))M的第一个三元组(1,1,10)与N的第一个三元组(2

6、,3,-1)比较,因行数1<2则Q得到第一个三元组(1,1,10);M的第二个三元组与N的第一个三元组比较,因对应行列数相等则9+(-1)=8,次行列数就是Q的行列数即得到Q的第二个三元组为(2,3,8);M第三个三元组(3,1,-1))与N的第二个三元组进行比较,因对应行列数相等,且1+(-1)=0,则不进行相加;而此时只有N的第三个三元组(3,3,-3)符合条件,则Q得到第三个三元组(3,3,-3);最终结果为((1,1,10),(2,3,8),(3,3,-3))1.7所有抽象数据类型的定义 以顺序存储结构来表示三元

7、组表,则可得到稀疏矩阵的一种压缩存储方式——三元组顺序表。/*稀疏矩阵的三元组顺序表存储表示*/#defineMAXSIZE1000//假设非零元个数的最大值为1000typedefstruct{inti,j;//该非零元的行下标和列下标ElemTypee;//该非零元数值}Triple;typedefstruct{Tripledata[MAXSIZE+1];//非零三元组表,data[0]未用intmu,nu,tu;//矩阵的行数(<20)、列数(<20)和非零元个数}TSMatrix;在此,data域中表示非零元得三

8、元组是以行序为主序顺序排列的,这样有利于进行某些矩阵运算。抽象数据类型稀疏矩阵的定义如下:ADTSparseMatrix{数据对象:D={aij

9、i=1,2,3,…,m;j=1,2,…,n;15Aij(-ElemSet,m和n分别称为矩阵的行数和列数}数据关系:R={Row,Col}基本操作:CreateSMatri

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。