稀疏矩阵实验报告(包括问题描述,源代码,实验结果等).docVIP

稀疏矩阵实验报告(包括问题描述,源代码,实验结果等).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 课程设计实习报告 题目: 班级: 学号: 姓名: 实习报告 1.问题描述 稀疏矩阵的操作 基本功能要求: (1)稀疏矩阵采用三元组表示,求两个具有相同行列数的稀疏矩阵A和B的相加矩阵C,并输出C。 (2)求出A的转置矩阵D,输出D。 2.设计 1) 设计思想 矩阵中如果多数的元素没有数据,则会造成存储器空间的浪费,为此,必须设计稀疏矩阵的阵列储存方式,利用较少的存储器空间储存完整的矩阵数据。但是这些存储空间的大部分存放的是0元素,从而造成大量的空间浪费.为了节省存储空间,可以只存储其中的非0元素. 对于矩阵Amn的每个元素aij,知道其行号i和列号j就可以确定其位置.因此对于稀疏矩阵可以用一个结点来存储一个非0元素.该结点可以定义成: [i,j,aij]   创建一个矩阵A和矩阵B,这两个稀疏矩阵具有相同行列数,然后矩阵A与矩阵B相加得到矩阵C,并输出C,稀疏矩阵采用三元组表示。并调用原矩阵A转置得到矩阵D,输出D。 2) 设计表示法 (1) 函数调用关系如图所示。 创建矩阵A 创建矩阵A 创建矩阵B 矩阵A与矩阵B相加,得到矩阵C 由矩阵A转置得到矩阵D 3)实现注释: 实现了原题中要求的:两个具有相同行列数的稀疏矩阵A和B的相加矩阵C,并输出C;得到矩阵A的转置矩阵D,输出D;稀疏矩阵均采用三元组表示。 3.调试报告 调试程序时,应注意矩阵的调用。比如,开始的时候没有注意将程序调用,最后尽管实现了矩阵的转置和相加,但没有符合题意。题目要求的是用创建好的矩阵A和矩阵B进行相加,并对矩阵A进行转置,所以要调用好矩阵。 4.程序清单 #includestdio.h #includestdlib.h #define MAXSIZE 100 typedef struct { int i,j; int e; }Triple; typedef struct { Triple data[MAXSIZE+1]; int mu,nu,tu; //mu、nu为稀疏矩阵的行列数,tu为稀疏矩阵的非零元素个数 }TSMatrix; TSMatrix M,T,S,B,C; void CreateMatrix(TSMatrix M) { int i,elem,col,row,mu,nu,tu; printf(请输入稀疏矩阵的行数、列数和非零元素的个数:\n); scanf(%d%d%d,mu,nu,tu); M.mu=mu; M.nu=nu; M.tu=tu; for (i=1;i=tu;i++) { printf(请输入非零元素的行号、列号和值:\n); scanf(%d%d%d,col,row,elem); if ( mu=1 || colM.mu ||nu=1 || rowM.nu) { printf(error!); exit(0); } else { M.data[i].i=col; //输出这个三元组 M.data[i].j=row; M.data[i].e=elem; } } } void FastTransposeSMatrix(TSMatrix M) /*求转置矩阵*/ { int num[100]; int cpot[100]; int p,q,t,col=0; T.mu=M.nu; // 给T的行、列数与非零元素个数赋值 T.nu=M.mu; T.tu=M.tu; if(T.tu) { for(col=1;col=M.nu;col++) { num[col]=0; } for(t=1;t=M.tu;t++) { num[M.data[t].j]++; } cpot[1]=1; for(col=2;col=M.nu;col++) { cpot[col]=cpot[col-1]+num[col-1]; } for(p=1;p=M.tu;++p) { col=M.data[p].j; q=cpot[col]; T.data[q].i=M.data[p].j; T.data[q].j=M.data[p].i; T.data[q].e=M.data[p].e; cpot[col]++; } } TSMatrix(T); } void TSMatrix_add(TSMatrix M,TSMa

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档