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

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

ID:12459469

大小:286.50 KB

页数:16页

时间:2018-07-17

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

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

1、题目:编制一个稀疏矩阵运算器的程序班级:计算机科学与技术四班姓名:奚明学号:41012170源代码://head.h#defineMAXSIZE10000typedefstruct//稀疏矩阵的三元组顺序表存储表示{inti,j;//该非零元的行下标和列下标inte;}Triple;typedefstruct{Tripledata[MAXSIZE];//非零元三元组表,data[0]未用intrpos[MAXSIZE+1];//各行第一个非零元的位置表intmu,nu,tu;//矩阵的行数列数和非零元的个数}

2、RLSMatrix;voidCreateSMatrix(RLSMatrix*T);voidAddRLSMatrix(RLSMatrixM,RLSMatrixN,RLSMatrix*Q);voidSubRLSMatrix(RLSMatrixM,RLSMatrixN,RLSMatrix*Q);intMulTSMatrix(RLSMatrixM,RLSMatrixN,RLSMatrix*Q);voidPrintSMatrix(RLSMatrixQ);//main.cpp#includeusing

3、namespacestd;#include"head.h"voidmain(){RLSMatrixM,N,Q;inti;do{printf("tt***************************");printf("tt稀疏矩阵运算器");printf("tt***************************");printf("tt1.矩阵相加");printf("tt2.矩阵相减");printf("tt3.矩阵相乘");print

4、f("tt4.退出");printf("tt请选择:");scanf("%d",&i);if(i==4)gotoend;else{printf("请输入第一个矩阵M:");CreateSMatrix(&M);printf("请输入第二个矩阵N:");CreateSMatrix(&N);switch(i){case1:AddRLSMatrix(M,N,&Q);break;case2:SubRLSMatrix(M,N,&Q);break;case3:MulTSMatrix(M,N,

5、&Q);break;default:break;}}PrintSMatrix(Q);getchar();getchar();end:;}while(i!=4);}//xishujuzhen.cpp#includeusingnamespacestd;#include"head.h"voidCreateSMatrix(RLSMatrix*T)//输入创建稀疏矩阵{intk;printf("请输入矩阵行数、列数及非零元个数:");scanf("%d%d%d",&T->mu,&T->nu,&T

6、->tu);printf("");if(T->tu>MAXSIZE

7、

8、T->mu>21){printf("非零个数超出定义范围!出错!");exit(0);}for(k=1;k<=T->tu;k++){printf("请输入第%d个非零元素的行数,列数及其值:",k);scanf("%d%d%d",&T->data[k].i,&T->data[k].j,&T->data[k].e);}}voidAddRLSMatrix(RLSMatrixM,RLSMatrixN,RLSMatrix*Q)//稀疏矩阵相加{

9、intp,q,k=1;if(M.mu!=N.mu

10、

11、M.nu!=N.nu){printf("你的输入不满足矩阵相加的条件!");exit(1);}Q->mu=M.mu;Q->nu=M.nu;for(p=1,q=1;p<=M.tu&&q<=N.tu;){if(M.data[p].i==N.data[q].i){if(M.data[p].j==N.data[q].j){Q->data[k].i=M.data[p].i;Q->data[k].j=M.data[p].j;Q->data[k].e=M.data[p

12、].e+N.data[q].e;p++;q++;k++;}elseif(M.data[p].jdata[k].i=M.data[p].i;Q->data[k].j=M.data[p].j;Q->data[k].e=M.data[p].e;k++;p++;}elseif(M.data[p].j>N.data[q].j){Q->data[k].i=N.data[q].i

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

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

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