稀疏矩阵相乘课程设计报告

稀疏矩阵相乘课程设计报告

ID:9852129

大小:253.50 KB

页数:24页

时间:2018-05-12

稀疏矩阵相乘课程设计报告_第1页
稀疏矩阵相乘课程设计报告_第2页
稀疏矩阵相乘课程设计报告_第3页
稀疏矩阵相乘课程设计报告_第4页
稀疏矩阵相乘课程设计报告_第5页
资源描述:

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

1、课程设计题目稀疏矩阵相乘学院计算机科学与技术专业计算机科学与技术卓越工程师23目录课程设计任务书11.问题描述21.1问题描述21.2基本要求31.3测试数据32.实现分析33.程序设计33.1存储结构设计33.1.1三元组表示稀疏矩阵33.1.2十字链表表示稀疏矩阵43.2主要算法设计53.2.1程序主要函数原型及功能53.2.2各函数的实现63.2.3程序流程图114.调试报告114.1调试中的问题114.2设计分析125.程序运行结果126.经验和体会137.源程序14参考文献:22本科生课程设计成绩评定表2323课程设计任务书学生姓名:马良专业班级:计算机zy1301班指导

2、教师:杨克俭工作单位:计算机科学系题目:稀疏矩阵相乘初始条件:稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。(1)以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵(2)实现两个矩阵相乘的运算。(3)稀疏矩阵采用十字链表表示,而运算结果的矩阵则以通常的阵列形式列出。(4)测试用例见严蔚敏《数据结构习题集(C语言版)》p136。要求完成的主要任务:(包括课内实践工作量及其技术要求,以及说明书撰写等具体要求)课内实践报告按学校规定格式用A4纸打印(书写),并应包含如下内容:1.问题描述简述题目

3、要解决的问题是什么。2.设计存储结构设计、主要算法设计(用类C/C++语言或用框图描述)、测试用例设计;3.调试报告调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。4.经验和体会(包括对算法改进的设想)5.附源程序清单和运行结果。源程序要加注释。如果题目规定了测试数据,则运行结果要包含这些测试数据和运行输出。说明:1.设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩均为0分。2.凡拷贝往年任务书或课内实践充数者,成绩一律无效,以0分记。时间安排:1.第16周完成,验收时间为12月26日(星期五)下午2.验收地点:实验中心3.验收内容:可执行程序与源代码、课内

4、实践报告书。指导教师签名:2014年11月4日系主任(或责任教师)签名:年月日23课程设计报告书1.问题描述1.1问题描述稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。1.2基本要求以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现两个矩阵相乘的运算。稀疏矩阵采用十字链表表示,而运算结果的矩阵则以通常的阵列形式列出。1.3测试数据测试用例:严蔚敏《数据结构习题集(C语言版)》p136。4-30013000-600008042080000100*010=0100000701000000

5、002.实现分析(1)根据题目要求,稀疏矩阵采用三元组法顺序输入,十字链表表示。只存储稀疏矩阵中极少的非零元素。(2)各元素按照在原来矩阵中的位置行优先进行存放。(3)在稀疏矩阵十字链表的表示中,每一行都是一个带附加头结点的循环行链表,每一列都是一个带附加头结点的循环列链表。(4)逐个寻找两个矩阵中非零元的位置,第一个矩阵从第一行开始,第二个矩阵从第一列开始,逐渐相乘相加,得到第三个矩阵。23(5)如果矩阵中非零元素个数比矩阵元素个数多,返回错误信息,程序结束。(6)若输入成功,输出三个矩阵。3.程序设计3.1存储结构设计3.1.1三元组表示稀疏矩阵只存储在矩阵中极少数的非零元素,

6、用来唯一确定一个矩阵元素。在三元组数组中,各矩阵元素按在原矩阵中的位置,以行优先的顺序依次存放,另外还要存储原矩阵的行数、列数和非零元素个数structTrituple{//三元组类Tritupleintrow,col;//非零元素的行号、列号floatvalue;//非零元素的值Trituple&operator=(Trituple&x){row=x.row;col=x.col;value=x.value;}};3.1.2十字链表表示稀疏矩阵在稀疏矩阵十字链表的表示中,每一行都是一个带附加头结点的循环行链表,每一列都是一个带附加头结点的循环列链表。所

7、有的结点都是结点类Node的对象。Node类有一个head域,用来区分该结点是附加头结点还是非零元素结点。每个附加头结点有三个域:d、r、next。第i个行链表和第i个列链表是一个附加头结点,r域存放第i行第一个结点的地址,d域存放第i列第一个结点的地址,next域链接到第i+1个附加头结点。每个非零元素结点有6个域:head,row,col,d,value。r是行链表指针,d是列链表指针。structTrituple{//三元组类Tritupleintrow,col

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

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

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