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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(稀疏矩阵的应用.doc)为本站会员(HR专家)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

稀疏矩阵的应用.doc

1、武 汉 工 程 大 学计算机科学与工程学院数据结构实验报告专业班级 实验地点 学生学号 指导教师 学生姓名 实验时间实验项目实验类别操作性()验证性( )设计性( )综合性(Y )其它( )实验目的及要求(1)掌握掌握稀疏矩阵的表示方法及其运算的实现;(2)实现稀疏矩阵在三元组、十字链表等表示下的各运算并分析其效率。成 绩 评 定 表类 别评 分 标 准分值得分合 计上机表现积极出勤、遵守纪律认真完成实验任务30分报告质量程序代码规范、功能正确填写内容完整、体现收获70分说明: 评阅教师: 日 期: 年 月 日稀疏矩阵的应用1、实验目的:(1)掌握掌握稀疏矩阵的表示方法及其运算的实现;(2)实

2、现稀疏矩阵在三元组、十字链表等表示下的各运算并分析其效率。2、实验内容在mn 的矩阵中,有t个非零元。令= t/(m*n),称矩阵的稀疏因子,常认为0.05时称为稀疏矩阵。稀疏矩阵在工程中有着大量的应用,不少工程问题都可以转化为对稀疏矩阵的计算问题。用三元组表实现稀疏矩阵的转置,用(顺序取,直接存)方法。3、实验说明:引入两个数组作为辅助数据结构: numnu:表示矩阵A中某列的非零元素的个数; cpotnu:初始值表示矩阵A中某列的第一个非零元素在B中的位置。 num与cpot递推关系:cpot0=0;cpotcol=cpotcol-1+numcol-1; 1colnu1.实验分析:在本次实

3、验当中,需要注意一下几个关键点:1. 设置转置后矩阵B的行数、列数和非零元素的个数;2. 计算A中每一列的非零元素个数;3. 计算A中每一列的第一个非零元素在B中的下标;4. 依次取A中的每一个非零元素对应的三元组;2.1 确定该元素在B中的下标pb;2.2 将该元素的行号列号交换后存入B中pb的位置;2.3 预置该元素所在列的下一个元素的存放位置;具体要定义如下若干个函数:void setup()初始化非零元的个数void transition()转置函数void input()输入函数void print1()输出函数void print2()输出函数2.源程序代码:#includeusi

4、ng namespace std;#include #define maxsize 50typedef int datatype;typedef struct int p,q;datatype x; List;typedef structint md,nd,td; tabletype;int n,m; /*稀疏矩阵的行数、列数*/ void input(datatype amaxsizemaxsize );void setup (datatype amaxsizemaxsize, List ta,tabletype *ta1 );void transition (tabletype *ta1,

5、 tabletype *tb1, List ta,List tb);void print1(datatype amaxsizemaxsize);void print2(List a,int nn);int main( ) datatype amaxsizemaxsize; /*稀疏矩阵*/List tamaxsize,tbmaxsize; /*三元组顺序表*/tabletype *ta1,*tb1;if (ta1=(tabletype *)malloc(sizeof(tabletype)=NULL) cout申请空间错误!n;return 0; if (tb1=(tabletype *)mal

6、loc(sizeof(tabletype)=NULL) cout申请空间错误!n;return 0; input(a);setup(a,ta,ta1);transition(ta1, tb1, ta,tb);coutn原稀疏矩阵为:n;print1(a );couttd);couttd);return 1; /*输入*/void input(datatype amaxsizemaxsize ) int i,j;coutn;coutm;for(i=0;in;i+)for(j=0;jaij;/*建立*/void setup (datatype amaxsizemaxsize, List ta, t

7、abletype *ta1) int i,j;ta1-td=0; /*初始化非零元素个数*/for(i=0; in;i+)for(j=0;jtd.p=i;tata1-td.q=j;tata1-td.x=aij;ta1-td+; ta1-md=n;ta1-nd=m; /*转置*/void transition (tabletype *ta1, tabletype *tb1, List ta,List tb) int i,j,nn=0;tb1-md=ta1-nd;tb1-nd=ta1-md;tb1-td=ta1-td;if(ta1-td!=0)for (i=0;ind;i+) /*i 原矩阵的列下

8、标*/for(j=0;jtd;j+) /*j 原三元组顺序表的下标*/ if(taj.q=i) /*寻找原矩阵中最小列下标*/ tbnn.p=taj.q;tbnn.q=taj.p;tbnn.x=taj.x;nn+; /*矩阵输出*/void print1(datatype amaxsizemaxsize) int i,j;for(i=0; in;i+) for(j=0;jm;j+)coutaij ;coutn; /*三元组顺序表输出*/void print2(List a,int nn) int i;coutt行号t列号t元素值n;for(i=0; inn;i+)cout ai.p ai.q ai.x n; coutn;实 验 内 容3.测试用例:1,当输入原稀疏矩阵为A33=2,0,3;1,0,4;0,0,1时程序运行结果如下:2.当输入稀疏矩阵为A22=1,0;0,2时运行结果如下:实 验 内 容实 验 总 结4.实验总结:针对稀疏矩阵的压缩存储应用,通过本次实验对它有一定的系统了解,在这次实验的的过程当中起初有很多问题比较疑惑,甚至根本动不了手,但是通过资料的查询,以及向同学的请教,这些问题很快就解决掉了,通过对稀疏矩阵的三元组存储方式省掉了系统的很多空间,也提高了效率,这对日后的编程打下了一定的基础。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报