数据结构实验二实验报告

数据结构实验二实验报告

ID:41721544

大小:57.00 KB

页数:5页

时间:2019-08-30

数据结构实验二实验报告_第1页
数据结构实验二实验报告_第2页
数据结构实验二实验报告_第3页
数据结构实验二实验报告_第4页
数据结构实验二实验报告_第5页
资源描述:

《数据结构实验二实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一题冃:稀疏矩阵转置班级:姓名:学号:完成日期一、题目要求:输出稀疏矩阵的转置矩阵。(行列均不大于20)要求为输入两个正整数n和m,为矩阵的行和列,然后输入矩阵三元组,(0,0,0)表示结束输入。二、概要设计1•需要的数据结构为:线性表。2.需要线性表的抽象数据类型:ADTSparseMatrix{数据对象:D={aij:

2、aij^TermSet,n20m和n分别成为矩阵的行数和列数}数据关系:R={Row,Col}Row={

3、lWiWm,Col={

4、lWjWn}基本操作:CreateSMtrix

5、f&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;typedefstruc

6、t{intm,n,t;NODEdata[MAX+l];}MT;2.对抽象数据类型中的部分基本操作的伪码算法如下:/*三元组的转置*/MTtran(MTa){//采用三元组存储表示,求稀疏矩阵a的转置矩阵bintp,q,col;MTb;b.m=a.n;b.n=a.m;b.t=a.t;if(a.t!=O){q=0;for(col=0;col

7、[q].v=a.data[p].v;q++;}}return(b);}/*主函数(包含输入输出函数)*/intmain(){MTa,b;intn;scanf(”%d”,&r);〃输入行数scanf(“%d”,&c);〃输入列数t=0;a.m=r;a.n=c;for(i=0;;i++)〃输入初始矩阵a{scanf("%d%d%d,,/&r,&c/&n);a.data[i].i=r;a.data[i].j=c;a.data[i].v=n;t++;if(a.data[i].i==O&&a.data[i].j==O&&a.data[i].v==O)brea

8、k;//输入(OOO)结束a.t=t;b=tran(a);for(i=0;i

9、'MAX'wasnotdeclaredinthisscope

10、等,经检查后发现错误,再开头加声明#deefineMAXSIZE1000,最终解决错误。2.编译的时候错误一大堆,不过最关键的是转置函数的错误,再运行的结果中出现不了想要的结果,经过一一排除后,才发现只是一个赋值语句的顺序颠倒而已。编程就是这样,牵一发而动全身,一个字母就有可能导致全面崩盘。3.特殊点的错误。一开始的程序中,对于以(0,0,t)类型的三元组不能有效识别并排序。例子如下图:11281812401188812最后才发现输出的部分并不是那么合理,因为我把结束标志当成一个矩阵元素

11、对待,同样记录其中,固然再编写算法的时候取了巧,但是输出后却发生了错误。4.不得不提其屮出现的另一种问题,我在编程序的时候喜欢添加一些输出汉字来提示自己到的阶段,然而noj并不能很智能的处理多输出的格式问题。虽然有画蛇添足的嫌疑,但是希望以后的NOJ系统更智能化。5.本次程序采用了数据抽象的程序设计方法,运用线性表的知识处理三元组数组类型的问题,并且将程序分为两部分,一部分为矩阵转置算法,另一部分为主函数,分而治之,容易调试,自己以后的编程屮,会更偏向于这种分块的编程模式。五、用户操作说明见三详细设计说明黑体字部分。文字描述:需要输入的数据有:矩阵

12、的行与列44输入的矩阵:111212323七、附录源程序。#include#defineMAX10000

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

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

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