数据结构作业_稀疏矩阵运算器

数据结构作业_稀疏矩阵运算器

ID:6181358

大小:1.74 MB

页数:17页

时间:2018-01-05

数据结构作业_稀疏矩阵运算器_第1页
数据结构作业_稀疏矩阵运算器_第2页
数据结构作业_稀疏矩阵运算器_第3页
数据结构作业_稀疏矩阵运算器_第4页
数据结构作业_稀疏矩阵运算器_第5页
资源描述:

《数据结构作业_稀疏矩阵运算器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实习报告题目:稀疏矩阵运算器编译环境:MicrosoftVisualStudio2010功能实现:以三元组顺序表输入稀疏矩阵实现两个稀疏矩阵相加、相减和相乘的运算运算结果的矩阵以阵列形式列出以十字链表表示稀疏矩阵一、需求分析1.稀疏矩阵是指那些多数元素为零的矩阵,利用“稀疏”的特点进行存储和计算可以大大节省存储空间,提高计算效率。而本程序是以“带行逻辑链接信息”的三元顺序表表示稀疏矩阵,实现两个矩阵的相加、相减和相乘的运算。稀疏矩阵的输入形式采用三元组表示,而运算结果的矩阵则以通常的阵列形式列出。除此之外,程序还采用十字链表表示稀疏矩阵的。2.程序的测试数据:二、概要

2、设计1.本程序的基本算法设计:a)首先输入矩阵的行数和列数,并判断给出的两个矩阵的行、列对于所要求的运算是否匹配。a)对于三元组的输入顺序是按照行优先的限制进行矩阵输入的。1.数据结构设计:typedefstructNode{inti,j;//非零元素的行和列doublee;//非零元素的值Node*right;//非零元素行表的后继Node*down;//非零元素列表的后继}Node,*NLink;classCList{private:NLink*rhead;//行的头指针NLink*dhead;//列的头指针intrNum;//行数intdNum;//列数publ

3、ic:CList();virtual~CList();boolInsertNode(inti,intj,doublee);boolCreateMatrix();voidShowMatrix();boolAddMatrix(CList&Matrix);boolSubMatrix(CList&Matrix);boolMultiMatrix(CList&Matrix,CList*&Result);};一、详细设计1.主要操作函数的实现:(1)插入函数:在已经初始化的稀疏矩阵中插入某个元素。boolCList::InsertNode(inti,intj,doublee){No

4、de*p,*q;if(i>rNum

5、

6、j>dNum

7、

8、i<0

9、

10、j<0){cout<<"tInvalidrownumber!InsertNodeFailed!"<i=i;p->j=j;p->e=e;//在行表中寻找插入位置if(rhead[i]

11、==NULL

12、

13、rhead[i]->j>j){p->right=rhead[i];rhead[i]=p;}else{q=rhead[i];while((q->right)&&q->right->jright;}p->right=q->right;q->right=p;}//在列表中寻找插入位置if(dhead[j]==NULL

14、

15、dhead[j]->i>i){p->down=dhead[j];dhead[j]=p;}else{q=dhead[j];while((q->down)&&q->down->idown;}p->down=q-

16、>down;q->down=p;}returnTRUE;}(1)矩阵创建函数:根据用户的输入,创建稀疏矩阵。boolCList::CreateMatrix(){intm,n;inti,j;doublee;cout<<"tPleaseinputthenumberofrow:";cin>>m;cout<>n;cout<

17、1;i++){rhead[i]=NULL;}for(i=0;i>i>>j>>e;cout<>i>>j>>e;cout<

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

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

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