《数据结构 系数矩阵的表示和转置.docx》由会员分享,可在线阅读,更多相关《数据结构 系数矩阵的表示和转置.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验四数据结构实验报告稀疏矩阵的表示和转置X请 12 3 4输234,一个4行5列的矩阵:4 55 66 77 82 33 44 5稀疏矩阵转换成一般矩阵后,1234再进行打印:4Pressany6keyto7 continue实验人:学号:时间:一、 实验目的.掌握稀疏矩阵的三元组顺序表存储结构1 .掌握稀疏矩阵的转置算法。二、 实验内容采用三元组表存储表示,求稀疏矩阵M的转置矩阵T。(算法5.1)实验步骤:1 .构建稀疏矩阵Mo.求稀疏矩阵M的转置矩阵To2 .输出稀疏矩阵M和稀疏矩阵To算法说明三、 测试结果匚*C:Prograa Fileslicrosoft Visual Studio
2、IyProjects125Di分析与探讨四、 附录:源代码源代码列在附录中,要求程序风格清晰易理解,有充分的注释。有意义的注释行不少 于 30%o#includenstdio.hn#includenstdlib.hn数据结构实验报告#define P 4#define N 5#define MAXSIZE 100typedef int ElernentType;typedef structint row,col;ElementType e;JTriple;typedef structTriple dataMAXSIZE+l;int m,n,len;TSMatrix;void InitMatri
3、x(int AP+1N+1)初始化矩阵int ij;printff请输入一个4行5列的矩阵:nn);for(i=l;i=P;i+)for(j=l;j=N;j+)(scanf(u%dH,&Aij);for(i=l;iP+l;i+)(for(j=l;jvN+l;j+)printf(f%dfAij);print 隼n);printf(n);TSMatrix MatrixToTriple(int AP+lN+l,TSMatrix M)/将一般的矩阵转换成三元组形式的 (int r,c,k=0;fbr(r=l;r=P;r+)fbr(c= 1 ;c=N;c+)数据结构实验报告if(Arc!=O) ( k+
4、;M.datak.row=r;M.datak.col=c;M.datak.e=Ar|c;一个小小的错误,将Arc写成Acr,导致调了 5个多小时 )调程序一定要认真啊(。)!)M.m=P;M.n=N;M.len=k;return M;)TSMatrix FastTransposeTSMatrix(TSMatrix A,TSMatrix B)/稀疏矩阵的快速转置算法int lie,t,p,q;int numMAXSIZE,positionMAXSIZE;B.len=A.len;B.m=A.n;B.n二A.m;if(B.len)(for(lie=l ;lie=A.n;lie+)( numlieJ=
5、O;)for(t= 1 ;t=A.len;t+)(numA.datat.col+;positionl=l;for(lie=2;lie=A.n;lie+) (positionlie=positionlie-1 +numlie-1 ;)for(p= l;p=A.len;p+)(lie=A.datafp.col;q=positionlie;B.dataq.row=A.datap.col;数据结构实验报告B.dataq.col=A.datap.row;B.dataq.e=A.datap.e;positionlie+;)return B;)void printMatrix(TSMatrix M)(int
6、 BN+1P+1=0;int i,j,k=1;for(i=1 ;iN+1 ;i+)(for(j=1 ;jP+1 ;j+)(if(i=M.datak.row & j=M.datak.col)(BiO=M.datak.e;k+;)printf(稀疏矩阵转换成一般矩阵后,再进行打印:n);for(i=1 ;ivN+1 ;i+)(for(j=1 ;jP+1 ;j+)(printf(n%4dtH,Bij);)printf(HnH);)void main()(int AP+1N+1=0;TSMatrix M=0,0,0,0,T=0,0,0,0;InitMatrix(A);M=MatrixToTriple(A,M);T=FastTransposeTSMatrix(M,T);printMatrix(T);)