矩阵转置及相加实验报告.doc

矩阵转置及相加实验报告.doc

ID:48926735

大小:122.50 KB

页数:12页

时间:2020-02-25

矩阵转置及相加实验报告.doc_第1页
矩阵转置及相加实验报告.doc_第2页
矩阵转置及相加实验报告.doc_第3页
矩阵转置及相加实验报告.doc_第4页
矩阵转置及相加实验报告.doc_第5页
资源描述:

《矩阵转置及相加实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.一、实验内容和要求1、稀疏矩阵A,B均采用三元组表示,验证实现矩阵A快速转置算法,设计并验证A,B相加得到矩阵C的算法。(1)从键盘输入矩阵的行数和列数,随机生成稀疏矩阵。(2)设计算法将随机生成的稀疏矩阵转换成三元组顺序表示形式存储。(3)设计算法将快速转置得到的与相加得到的三元组顺序表分别转换成矩阵形式。(4)输出随机生成的稀疏矩阵A,B及其三元组顺序表、快速转置得到的与相加得到的三元组顺序表及其矩阵形式。二、实验过程及结果一、需求分析1、将随机生成的数定义为int型(为方便起见设定范围为-20至20(不含0),可修改),三元组存储的元素分别

2、为非零元的行下标、列下标及该位置的元素值,零元不进行存储。实际上在生成稀疏矩阵时是随机选取一些位置生成非零元然后存入三元组中。2、从键盘输入矩阵的行数和列数后应能输出三元组顺序表及相应矩阵(按行和列排列形式输出)。3、程序能实现的功能包括:①随机产生稀疏矩阵;②输出阵列形式的矩阵;③输出三元组顺序表;④将矩阵快速转置;⑤将两个稀疏矩阵相加生成新的矩阵。二、概要设计1、稀疏矩阵的抽象数据类型定义:ADTTSMatrix{数据对象:D={aij

3、i=1,2,…,m,j=1,2,…,n;Ai,j∈ElemSet,m和n分别称为矩阵的行数和列数}数据关系:

4、R={Row,Col}Row={

5、1≤i≤m,1≤j≤n-1}Col={

6、1≤i≤m-1,1≤j≤n}基本操作:CreateTSMatrix(&M)操作结果:创建矩阵MPrintTSMatrix(M)初始条件:矩阵M已存在操作结果:输出矩阵M中三元组形式的非零元素PrintTSMatrix1(M)初始条件:矩阵M已存在操作结果:以阵列形式输出矩阵UnZore(M,row,col)初始条件:矩阵M已存在操作结果:若位置(row,col)处存在非零元素,则返回该元素存储在矩阵中的序号TSMatrix_

7、Add(M,N,&Q)范文..初始条件:矩阵M,N已存在操作结果:将矩阵M,N相加得到Q并返回矩阵QFastTransposeSMatrix(M,&N)初始条件:矩阵M已存在操作结果:将矩阵M快速转置得到转置矩阵N并返回}ADTTSMatrix;⒊本程序模块结构⑴主函数模块voidmain(){初始化迷矩阵;创建矩阵并输出;将矩阵转置并输出;将矩阵相加并输出结果;}三、详细设计1、基本数据类型操作⑴typedefintElemType;typedefstruct{inti,j;ElemTypee;}Triple;//数据类型三元组typedefst

8、ruct{Tripledata[maxsize+1];//矩阵大小intmu,nu,tu;//}TSMatrix;//矩阵抽象数据类型2、参数设置:#definemaxsize10000//----------基本操作的算法描述--------------------StatusCreateTSMatrix(TSMatrix*M){//创建一个随机矩阵(data[0]未用)srand((int)time(NULL));printf("PleaseInputTheLinesAndColumnsOfTheMatrix:");printf("...(

9、矩阵的期望规格大于4*5(或5*4))...");scanf(M->mu,M->nu);for(m=0;mmu;m++){for(n=0;nnu;n++){k[m][n]=rand()%20;if(k[m][n]==0){if(rand()%2)M->data[p].e=rand()%20+1;elseM->data[p].e=rand()%20-20;M->data[p].i=m+1;范文..M->data[p].j=n+1;p++;}}}M->tu=p-1;//p从1开始,非零元个数刚好等于p-1returnOK;}void

10、PrintTSMatrix(TSMatrixM){//输出矩阵的三元组顺序表if(M.tu==0)printf("无非零元!");else{printf("该矩阵的行数为%d、列数为%d、非零元素个数为%d.非零元的坐标及值:",M.mu,M.nu,M.tu);printf("行列元素值");for(i=1;i<=M.tu;i++){printf("%4d%4d%6d",M.data[i].i,M.data[i].j,M.data[i].e);}printf("");}}voidPrintTSMatrix1(TSMatr

11、ixM){//输出矩阵的阵列形式printf("阵列形式为:");for(i=1;i<=M.mu;i++){for(j

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

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

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