欢迎来到天天文库
浏览记录
ID:30934427
大小:55.18 KB
页数:6页
时间:2019-01-05
《实验四数组的运算》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据结构数组的运算实验报告专业:计算机科学与技术班级:计科0901姓名:实验四数组的运算实验目的:掌握稀疏矩阵的压缩存储方法及主要运算的实现。实验内容与要求:设计一个稀疏矩阵计算器,要求能够:⑴输入并建立稀疏矩阵;⑵输出稀疏矩阵;⑶执行两个矩阵相加;⑷执行两个矩阵相乘;⑸求一个矩阵的转置矩阵;⑹(选做)求一个矩阵的逆矩阵。#include#include#includeusingnamespacestd;classTriple{public:inti,j
2、;inte;};classTSMatrix{public:Tripledata[1001];intrpos[1001];intmu,nu,tu;boolCreateSMatrix(TSMatrix&M);〃建立矩阵boolDestroyMatrixTSMatrix(TSMatrix&M);〃消灭矩阵boolPrintSMatrix(TSMatrixM);〃输出矩阵boolCopySMatrix(TSMatrixM,TSMatrix&T);//M复制到TboolAddSMatrix(TSMatrixM,TSMa
3、trixN,TSMatrix&Q);//Q=M+NboolSubtSMatrix(TSMatrixM,TSMatrixN,TSMatrix&Q);//Q=M-NboolMultSMatrix(TSMatrixM,TSMatrixN,TSMatrix&Q);//Q=M*NboolTransposeSMatrix(TSMatrixM,TSMatrix&T);〃矩阵的转置};boolCreateSMatrix(TSMatrix&M)〃建立矩阵{if(!(M=(TSMatrix)malloc(sizeof(TSMat
4、rix)))returnfalse;cout«H输入矩阵的行数:”;cin»M.mu;cout«"输入矩阵的列数:cin»M.nu;coutvv”输入矩阵非零元个数:cin»M.tu;cout«H输入三元素,如:123”;for(intk=l;kv=M.tu;k++)cin»M.data[k].i»M.data[k].j»M.data[k].e;}returntrue;}boolDestroyMatrix(TSMatrix&M)〃消灭矩阵{TSMatrix*p=&M;free(p);returntrue;}b
5、oolPrintSMatrix(TSMatrixM)〃输出矩阵{for(intk=1;k<=M.mu;k++){for(intg=l;g<=M.nu;g++){intflag=O;for(intl=l;l6、trix&T)//M复制到T{if(M.nu!=T.nullM.mu!=T.mu)returnfalse;T=M;returntrue;}boolMultSMatrix(TSMatrixM,TSMatrixN,TSMatrix&Q)//Q=M*Nintarrow,brow5tp,p,q,t,ccol,ctemp[1000];if(M.nu!=N>mu)returnfalse;Q.mu=M.mu;Q.nu=N.nu;Q.tu=O;if(M.tu*N.tu!=0){for(an*ow=l;arrow<=M.mu;7、++aiTow){for(p=l;p<=N.nu;p++)ctemp[p]=0;Q.rpos[arrow]=Q.tu+l;if(arrow8、=M.data[p].e*N.data[q].e;}}for(ccol=l;ccol<=Q.nu;++ccol)if(ctemp[ccol]){讦(+-f-Q.tu>1000)returnfalse;Q.data[Q.tu].i=arrow;Q.data[Q.tu]j=ccol;Q.data[Q.tu].e=ctemp[ccol];}}}returntrue;}boolTransposeSMatri
6、trix&T)//M复制到T{if(M.nu!=T.nullM.mu!=T.mu)returnfalse;T=M;returntrue;}boolMultSMatrix(TSMatrixM,TSMatrixN,TSMatrix&Q)//Q=M*Nintarrow,brow5tp,p,q,t,ccol,ctemp[1000];if(M.nu!=N>mu)returnfalse;Q.mu=M.mu;Q.nu=N.nu;Q.tu=O;if(M.tu*N.tu!=0){for(an*ow=l;arrow<=M.mu;
7、++aiTow){for(p=l;p<=N.nu;p++)ctemp[p]=0;Q.rpos[arrow]=Q.tu+l;if(arrow8、=M.data[p].e*N.data[q].e;}}for(ccol=l;ccol<=Q.nu;++ccol)if(ctemp[ccol]){讦(+-f-Q.tu>1000)returnfalse;Q.data[Q.tu].i=arrow;Q.data[Q.tu]j=ccol;Q.data[Q.tu].e=ctemp[ccol];}}}returntrue;}boolTransposeSMatri
8、=M.data[p].e*N.data[q].e;}}for(ccol=l;ccol<=Q.nu;++ccol)if(ctemp[ccol]){讦(+-f-Q.tu>1000)returnfalse;Q.data[Q.tu].i=arrow;Q.data[Q.tu]j=ccol;Q.data[Q.tu].e=ctemp[ccol];}}}returntrue;}boolTransposeSMatri
此文档下载收益归作者所有