1 / 5
文档名称:

数据结构实验二实验报告.docx

格式:docx   大小:56KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验二实验报告.docx

上传人:ttteee8 2019/7/18 文件大小:56 KB

下载得到文件列表

数据结构实验二实验报告.docx

文档介绍

文档介绍:一题冃:稀疏矩阵转置班级:姓名:学号: 完成日期一、 题目要求:输出稀疏矩阵的转置矩阵。(行列均不大于20)要求为输入两个正整数n和m,为矩阵的行和列,然后输入矩阵三元组,(0,0,0)表示结束输入。二、 概要设计1•需要的数据结构为:线性表。需要线性表的抽象数据类型:ADTSparseMatrix{数据对象:D={aij:|aij^TermSet,n20m和n分别成为矩阵的行数和列数}数据关系:R={Row,Col}Row={<ai,j,ai,j+l>|lWiWm,Col={<ai,j,ai+l,j>|lWjWn}基本操作:CreateSMtrixf&M)操作结果:创建稀疏矩阵DestroySMaix(&M)初始条件:稀疏矩阵M己存在。操作结果:销毁稀疏矩阵M。PrintSMatrix(L)初始条件:稀疏矩阵M已经存在。操作结果:输出稀疏矩阵M。CopySMatrix(M,&T)初始条件:稀疏矩阵M己经存在。操作结果:由稀疏矩阵M复制得到T。TransposeSMatrixfM,&T)初始条件:稀疏矩阵M已经存在。操作结果:求稀疏矩阵M的转转矩阵To}ADTSparseMatrix三、 详细设计1•元素类型,结点类型typedefstruct{intijv;}NODE;typedefstruct{intm,n,t;NODEdata[MAX+l];}MT;对抽象数据类型中的部分基本操作的伪码算法如下:/*三元组的转置*/MTtran(MTa){//采用三元组存储表示,求稀疏矩阵a的转置矩阵bintp,q,col;MTb;=;=;=;if(!=O){q=0;for(col=0;col<;col++)//先列for(p=0;p<;p++)if([p].j==col){[q].i=[p].j;[q].j=[p].i;[q].v=[p].v;q++;}}return(b);}/*主函数(包含输入输出函数)*/intmain(){MTa,b;intn;scanf(”%d”,&r);〃输入行数scanf(“%d”,&c);〃输入列数t=0;=r;=c;for(i=0;;i++)〃输入初始矩阵a{scanf("%d%d%d,,/&r,&c/&n);[i].i=r;[i].j=c;[i].v=n;t++;if([i].i==O&&[i].j==O&&[i].v==O)break;//输入(OOO)=t;b=tran(a);for(i=0;i<t;i++)〃输出转置后的矩阵{if([i].i==O&&[i].j==0&&[i].v==0)continue;elseprintf("%d%d%d\n",[i].i/[i].j,[i].v);}return0;}函数调用关系:MainMTtran四、调试分析与心得体会一开始我没有定义非零元素个数最大值,编译吋出现error提示,如:\编程\sdfasd\:'MAX'wasnotdeclared