还剩7页未读,继续阅读
文本内容:
软件学院上机实验报告课程名称数据结构实验项目矩阵实验室耘慧420姓名学号专业班级实验时间
2022.1124实验成绩评阅教师
一、实验目的及要求.掌握稀疏矩阵压缩存储方法(三元组顺序表存储).完成压缩存储下矩阵计算(矩阵转置)
二、验证性
三、实验学时2学时U!C与C++程序设计学习与实验系统
五、实验内容及步骤实验内容.实现矩阵压缩存储(静态数组压缩存储或者直接输入矩阵非0元均可).实现矩阵转置算法.实现矩阵快速转置实验步骤.实现矩阵压缩存储(静态数组压缩存储或者直接输入矩阵非0元均可).实现矩阵转置算法TransposeSMatrix(TSMatrixMTSMatrixT).实现矩阵快速转置FastTransposeSMatrix(TSMatrixMTSMatrixT).主函数中创建矩阵M将M调用转置算法转置成矩阵N调用快速转置算法转化成矩阵To
六、实验数据及结果分析
七、总结了解了矩阵的一些知识,懂得了矩阵的一些算法并且在实际上机中,学会了矩阵的程序的编写方法附录源程序清单插入;#includestdio.h#includeHmalloc.h#includeconio.h#includestdlib.h#defineOK1#defineERROR0#defineMAXSIZE12500#defineMAXRC1000typedefintElemType;typedefintStatus;typedefstruct{intij;ElemTypee;JTriple;typedefstruct{Tripledata[MAXSIZE+1];intrpos[MAXRC+1];intmutu3nu;JRLSMatrix;StatusTransposeSMatrixRLSMatrixMRLSMatrixT{intq=1col=0p=0;T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;ifT.tu{q=i;forcol=1;col=M.nu;++colforp=1;p=M.tu;++pifM.data[p].j==col{T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++q;}return0;StatusFastTransposeSMtrixRLSMatrixMRLSMatrixT{intcol=0t=05p=05q=0;ElemTypenum
[100]cpot
[100];T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;ifT.tu{forcol=1;col=M.nu;++colnum[col]=0;fort=1;t=M.tu;++t++num[M.data[t]J];cpot
[1]=1;forcol=2;col=M.nu;++colcpot[col]=cpot[col-1]+num[col-1];forp=1;p=M.tu;++p{col=M.data[p].j;q=cpot[col];T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++cpot[col];}returnOK;StatusCreateSMatrixRLSMatrix*M{intkm5ni;ElemTypee;printf请输入行列非零个数scanf_s%dH5*M.mu;scanf_s%d*M.nu;scanf_s%d\*M.tu;*M.data[O].i=O;fori=1;i=*M.tu;i++{do{printf请输入元素行列元素值;scanf_sn%dn5m;scanf_s%d\n;scanf_sH%dH5e;k=0;ifm1||m*M.mu||n1||n*M.nuk=1;ifm=*M.data[i-1].in=*M.data[i-1].jk=1;}whilek;*M.data[i].j=n;*M.data[i].e=e;returnOK;}voidprintfSMatrixRLSMatrixM{inti;printf_sH%4d%4d%8d\nHJM.muM.nu5M.tu;fori=1;i=M.tu;i++printf_s%4d%4d%8d\nH5M.data[i].iJM.data[i].j5M.data[i].e;intmainvoidRLSMatrixMNTQ;CreateSMatrixM;FastTransposeSMtrixMT;printfSMatrixT;CreateSMatrixN;TransposeSMatrixMQ;printfSMatrixQ;jgetchQ;return0;。