ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:34.49KB ,
资源ID:4674793      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4674793.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(稀疏矩阵的存储和快速转置实验报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

稀疏矩阵的存储和快速转置实验报告.docx

1、稀疏矩阵的存储和快速转置实验报告福 建 工 程 学 院课程设计课 程: 数据结构 题 目: 稀疏矩阵的快速转置 专 业: 运算机类 班 级: 座 号: 姓 名: 2021年6月25日 实验题目:稀疏矩阵的快速转置一、要解决的问题利用三元组表存储稀疏矩阵,利用快速转置算法进行转置,并输出转置之前和以后的三元组表和矩阵。二、算法大体思想描述:由于稀疏矩阵的非零元素较少,零元素较多,因此只需存储其非零元素。因此能够成立一个三元组表,别离保存稀疏矩阵的非零元素的行号、列号和元素值。对稀疏矩阵进行快速转置是能够引入两个向量numn+1,cpotn+1,别离标记矩阵中第col列的非零元素个数和第一个非零元

2、素在转置后的矩阵的位置;再扫描三元组表,找到非零元素,直接对其在转置后的矩阵所在的位置上进行修改,以节省时刻。三、详细设计元素类型,结点类型typedef struct int i,j; int e;Triple;typedef struct Triple dataMAXSIZE+1; int mu,nu,tu; Tsmatrix; 2.对抽象数据类型中的部份大体操作的伪码算法如下:Tsmatrix * creatarray(Tsmatrix *M) int m,n,p=1; int c; printf(please input the array A:n); for(m=1;m=a;m+)

3、for(n=1;ndatap.e=c; M-datap.i=m; M-datap.j=n; p+; M-tu=p; M-mu=a; M-nu=b; printf(yuan lai san yuan zu de biao shi wei :nn); for(m=1;mtu;m+) printf(%3d%3d%3dt,M-datam.i,M-datam.j,M-datam.e); printf(n); return M; /*三元组快速转置*/Tsmatrix * fasttrans(Tsmatrix *M,Tsmatrix *T) int p,col,q,t,m; int num100; int

4、 cpot100; T-mu=M-nu; T-nu=M-mu; T-tu=M-tu; if(T-tu!=0) for(col=1;colnu;col+) numcol=0; for(t=1;ttu;t+) +numM-datat.j; cpot1=1; for(col=2;colnu;col+) cpotcol=cpotcol-1+numcol-1; for(p=1;ptu;+p) col=M-datap.j; q=cpotcol; T-dataq.i=M-datap.j; T-dataq.j=M-datap.i; T-dataq.e=M-datap.e; +cpotcol; printf(n

5、nzhuan zhi hou de san yuan zu biao shi wei :nn); for(m=1;mtu;m+) printf(%3d%3d%3dt,T-datam.i,T-datam.j,T-datam.e); printf(n); return T;/*输出三元组函数*/void print(Tsmatrix *T,int x,int y) int m,n,p=1; int d; for(m=1;m=x;m+) printf(n); for(n=1;ndatap.i=m&T-datap.j=n) d=T-datap.e; p+; else d=0; printf(%6d,d

6、); 3.主函数和其他函数的伪码算法void main() Tsmatrix *M,*T; M=(Tsmatrix *)malloc(sizeof(Tsmatrix); T=(Tsmatrix *)malloc(sizeof(Tsmatrix); printf(please input arrays row and col:n); scanf(%d%d,&a,&b); /*输入行列数*/ M=creatarray(M); /*创建稀疏矩阵*/ printf(you had creat the array:n); print(M,a,b); /*输出创建好的三元组*/ T=fasttrans(M

7、,T); /*将三元组转置*/ printf(the trans array is:n); print(T,b,a); getch();4、模块结构及功能四、源程序清单:#include#define MAXSIZE 100typedef struct int i,j; int e;Triple;typedef struct Triple dataMAXSIZE+1; int mu,nu,tu; Tsmatrix;int a,b; /*概念全局变量数组的行数a和列数b*/*用数组创建三元组*/Tsmatrix * creatarray(Tsmatrix *M) int m,n,p=1; int

8、 c; printf(please input the array A:n); for(m=1;m=a;m+) for(n=1;ndatap.e=c; M-datap.i=m; M-datap.j=n; p+; M-tu=p; M-mu=a; M-nu=b; printf(yuan lai san yuan zu de biao shi wei :nn); for(m=1;mtu;m+) printf(%3d%3d%3dt,M-datam.i,M-datam.j,M-datam.e); printf(n); return M;/*三元组快速转置*/Tsmatrix * fasttrans(Ts

9、matrix *M,Tsmatrix *T) int p,col,q,t,m; int num100; int cpot100; T-mu=M-nu; T-nu=M-mu; T-tu=M-tu; if(T-tu!=0) for(col=1;colnu;col+) numcol=0; for(t=1;ttu;t+) +numM-datat.j; cpot1=1; for(col=2;colnu;col+) cpotcol=cpotcol-1+numcol-1; for(p=1;ptu;+p) col=M-datap.j; q=cpotcol; T-dataq.i=M-datap.j; T-dat

10、aq.j=M-datap.i; T-dataq.e=M-datap.e; +cpotcol; printf(nnzhuan zhi hou de san yuan zu biao shi wei :nn); for(m=1;mtu;m+) printf(%3d%3d%3dt,T-datam.i,T-datam.j,T-datam.e); printf(n); return T;/*输出三元组函数*/void print(Tsmatrix *T,int x,int y) int m,n,p=1; int d; for(m=1;m=x;m+) printf(n); for(n=1;ndatap.i

11、=m&T-datap.j=n) d=T-datap.e; p+; else d=0; printf(%6d,d); void main() Tsmatrix *M,*T; M=(Tsmatrix *)malloc(sizeof(Tsmatrix); T=(Tsmatrix *)malloc(sizeof(Tsmatrix); printf(please input arrays row and col:n); scanf(%d%d,&a,&b); /*输入行列数*/ M=creatarray(M); printf(you had creat the array:n); print(M,a,b); T=fasttrans(M,T); printf(the trans array is:n); print(T,b,a); getch();五、测试数据及测试结果:(1)我输入的稀疏矩阵为:(2)回车显示的结果是:六、课程设计总结及心得体会:通过本次课程设计,我对有关稀疏矩阵及其三元组表的知识做了温习和巩固。在课程设计的进程中,碰到了很多问题,如稀疏矩阵操作中对矩阵信息统计犯错的问题。我为此在程序中加入printf语句,通过该语句是不是输出,找到致使运行犯错的位置,再进行改动调试,最终解决了问题,同时也加深了对两个程序的明白得。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1