稀疏矩阵运算器实验报告

稀疏矩阵运算器实验报告

ID:31652429

大小:68.33 KB

页数:6页

时间:2019-01-16

稀疏矩阵运算器实验报告_第1页
稀疏矩阵运算器实验报告_第2页
稀疏矩阵运算器实验报告_第3页
稀疏矩阵运算器实验报告_第4页
稀疏矩阵运算器实验报告_第5页
资源描述:

《稀疏矩阵运算器实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、稀疏矩阵运算器一:问题描述:稀疏矩阵是指那些多数元素为零的矩阵。利用稀疏特点进行储存和计算可以大大节省储存空间,提高计算效率。实现一个能进行称稀疏矩阵基本运算的运算器。基本要求:以带逻辑链接信息的三元组顺序表表示稀疏矩阵,实现矩阵相加,相减,相乘的运算。稀疏矩阵的输入形式采用三元组表示。而运算结果的矩阵则用通常的阵列形式列出。测试数据:10000001000009+00-1=009-10010-300-31000010009+0-1=010-101-3-233004-30014200-6000080*010=80000100100010000070000

2、000二概要设计:intCreateSMatrix(TSMatrix&M)操作结果:创建矩阵MvoidDestroySMatrix(TSMatrix&M)初始条件:矩阵M存在操作结杲:销毁矩阵M;voidPrintSMatrix(TSMatrixM)初始条件:矩阵M存在操作结果:打卬矩阵MintAddSMatrix(TSMatrixM,TSMatrixN,TSMatrix&Q)初始条件:矩阵M,N,Q存在操作结果:矩阵M,N,相加并储存于矩阵QintXSMatrix(TSMatrixM,TSMatrixN,TSMatrix&Q)初始条件:矩阵M,N,Q存

3、在操作结果:矩阵M,N,相减并储存于矩阵QintMultSMatrix(TSMatrixM,TSMatrixN,TSMatrix&Q)初始条件:矩阵M,N,Q存在操作结果:矩阵M,N,相乘并储存于矩阵Q三,详细程序#include"stdafx.h"#include"stdio.hH#include”stdlib.h”#defineMAXSIZE100//非零元个数的最大值structTriple{inti,j;//行下标,列下标inte;//非零元素值};structTSMatrix{Tripledata[MAXSIZE+l];intrpos[MAXS

4、IZE+1];//非零元三元组表,data[0]未用intmu,nu,tu;//矩阵的行数、列数和非零元个数};//bo5-2.cpp三元组稀疏矩阵的基本操作,包括算法5.1(9个)intCreateSMatrix(TSMatrix&M){//创建稀疏矩阵Minti,m,n;inte;intk;printfC*请输入矩阵的行数,列数,非零元素数:“);scanf(n%d,%d,%d",&M.mu,&M.nu,&M.tu);M.data[0].i=0;//为以下比较顺序做准备for(i=1;i<=M.tu;i++){do{printfC*请按行序顺序输入第

5、%(1个非零元素所在的行(l〜%d),列(l〜%d),元素值:”,iMmuMnu);scanf(”%d,%d,%d”,&m,&n,&e);k=0;if(m

6、

7、m>M.mu

8、

9、n

10、

11、n>M.nu)//彳亍或列超出范围k=l;if(m

12、

13、m==M.datafi-1].i&&n<二M.daki[i・1].j)//行或列的顺序有错k=l;}while(k);M.data[i].i=m;M.data[i].j=n;M.data[i].e=e;}return1;}voidDestroySMatrix(TSMatrix&M){//销

14、毁稀疏矩阵MM.mu=0;M.nu=0;M.tu=0;voidPrintSMatrix(TSMalrixM){//输出稀疏矩阵Minti;printf(H%d行%d列%d个非零元素。fM.mu,M.nu,M.tu);printf("行列元素值“);for(i=l;i<=M.tu;i++)printf(',%2d%4d%8d,,,M.dataLi].i,M.data[i].j,M.data[i].e);}intcomp(intcl,intc2)//另力口{//AddSMatrix函数要用到inti;if(cl

15、==c2)i=0;elsei=-l;returni;}intAddSMatrix(TSMatrixM,TSMatrixN,TSMatrix&Q){//求稀疏矩阵的和Q=M+NTriple*Mp,*Me,*Np,*Ne,*Qh,*Qe;if(M.mu!=N.mu)return0;if(M.nu!=N.nu)return0;Q.mu=M.mu;Q.nu=M.nu;Mp二&M.data[l];//Mp的初值指向矩阵M的非零元素首地址Np二&N.dataH];//Np的初值指向矩阵N的非零元素首地址Me二&M.datarM.tu];//Me指向矩阵M的非零元素尾

16、地址Ne二&N.data[N.tu];//Ne指向矩阵N的非零元素尾地址Qh=Q

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

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

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