欢迎来到天天文库
浏览记录
ID:44509565
大小:79.00 KB
页数:4页
时间:2019-10-22
《数据结构系数矩阵的表示和转置》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验四稀疏矩阵的表示和转置实验人:学号:时间:一、实验目的1.掌握稀疏矩阵的三元组顺序表存储结构2.掌握稀疏矩阵的转置算法。二、实验内容采用三元组表存储表示,求稀疏矩阵M的转置矩阵T。(算法5.1)三、实验步骤:1.构建稀疏矩阵M。2.求稀疏矩阵M的转置矩阵T。3.输岀稀疏矩阵M和稀疏矩阵T。四、算法说明五、测试结果*C:Progra>FileslicrosoftVisualStudiolyProjects125Debug125.'请输入一亠个4行5列的矩阵:"D12345■23456■34567■4567812345234563456745678馬疏矩阵转换成-亠般矩阵后,再
2、进行打印:12342345345645675678
3、Pressanykeytc1continue—六、分析与探讨七、附录:源代码源代码列在附录中,要求程序风格清晰易理解,有充分的注释。有意义的注释行不少于30%。#includeMstdio.hH#includeMstdlib.hH#defineP4#defineN5#defineMAXSIZE100typedefintElementType;typedefstruct{introw,col;ElementTypee;[Triple;typedefstruct{Tripledata[MAXSIZE+l];intm,n,len;}TSMatr
4、ix;voidInitMatrix(intA[P+1][N+1])//初始化矩阵{intij;printf(”请输入一个4行5列的矩阵:n);for(i=l;i<=P;i++){for(j=l;j<=N;j++){scanf(”%d”,&A[i][j]);}}for(i=1;i
5、;for(r=1;r<=P;r++)for(c=l;c<=N;c++)if(A[r][c]!=O){k++;M.data[kJ.row=r;M.datafk].col=c;M.data[k].e=A[r][c];//一个小小的错误,将A[r][c]写成A[c][r],导致调了5个多小时}//调程序一定要认真啊(OoO)!}}M.m=P;M.n=N;M.len=k;returnM;}TSMatrixFastTransposeTSMatrix(TSMatrixA,TSMatrixB){//稀疏矩阵的快速转置算法intlie丄p、q;intnum[MAXSIZE],position[MAXSIZ
6、E];B.len=A.len;B.m=A.n;B.n=A.m;if(B.len){for(lie=l;lie<=A.n;lie++){num[lie]=O;}for(t=1;t<=A.len;t++){num[A.data[t].col]++;position[l]=l;for(lie=2;lie<=A.n;lie++){position[lie]=position[lie-1]+num[lie-1];)for(p=1;p<=A.len;p++){lie=A.data[p].col;q=position[lie];B.datalq].row=A.data[p].col;B.datafql.
7、col=A.datafp].row;B.data[q].e=A.data[p].e;position[Iie]++;}!returnB;}voidprintMatrix(TSMatrixM){intB[N+l]fP+l]={0};inti,j,k=l;for(i=l;i8、){printf(H%4df,,B[i]9、j]);}printf(,,M);voidmain(){intA[P+l][N+l]={0};TSMatrixM={{0),0,0,0},T二{{0},0,0,0};InitMatrix(A);M=MatrixToTriple(A,M);T=FastTransposeTSMatrix(M,T);printMatrix(T);
8、){printf(H%4df,,B[i]
9、j]);}printf(,,M);voidmain(){intA[P+l][N+l]={0};TSMatrixM={{0),0,0,0},T二{{0},0,0,0};InitMatrix(A);M=MatrixToTriple(A,M);T=FastTransposeTSMatrix(M,T);printMatrix(T);
此文档下载收益归作者所有