2022年稀疏矩阵的应用参考 .pdf

上传人:H****o 文档编号:32430818 上传时间:2022-08-09 格式:PDF 页数:8 大小:354.66KB
返回 下载 相关 举报
2022年稀疏矩阵的应用参考 .pdf_第1页
第1页 / 共8页
2022年稀疏矩阵的应用参考 .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年稀疏矩阵的应用参考 .pdf》由会员分享,可在线阅读,更多相关《2022年稀疏矩阵的应用参考 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

2、- - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 计算机科学与工程学院计算机程序设计基础实验报告2 稀疏矩阵的应用1、实验目的:(1)掌握掌握稀疏矩阵的表示方法及其运算的实现;(2)实现稀疏矩阵在三元组、十字链表等表示下的各运算并分析其效率。2、实验内容在 m n 的矩阵中, 有 t 个非零元。 令 = t/(m*n),称矩阵的稀疏因子,常认为 0.05时称为稀疏矩阵。稀疏矩阵在工程中有着大量的应用,不少工程问题都可以转化为对稀疏矩阵的计算问题。用三元组表实现稀疏矩阵的转置,用(顺序取,直接存)方法。3、实验说明:引入两个数组作为辅助

3、数据结构:numnu :表示矩阵A中某列的非零元素的个数;cpotnu:初始值表示矩阵A中某列的第一个非零元素在B中的位置。num与 cpot 递推关系:1. 实验分析:在本次实验当中,需要注意一下几个关键点:1. 设置转置后矩阵B 的行数、列数和非零元素的个数;2. 计算 A 中每一列的非零元素个数;3. 计算 A 中每一列的第一个非零元素在B 中的下标;4. 依次取 A 中的每一个非零元素对应的三元组;2.1 确定该元素在B 中的下标 pb;2.2 将该元素的行号列号交换后存入B 中 pb 的位置;2.3 预置该元素所在列的下一个元素的存放位置;具体要定义如下若干个函数:void setu

4、p()初始化非零元的个数void transition ()转置函数void input()输入函数void print1() 输出函数void print2() 输出函数cpot0=0 ;cpotcol=cpotcol - 1+numcol -1;1colnu名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 计算机科学与工程学院计算机程序设计基础实验报告3 2. 源程序代码:#include using namespace st

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

6、etype *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=(tabletyp

7、e *)malloc(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 a

8、maxsizemaxsize, List ta, tabletype *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;

9、if(ta1-td!=0) for (i=0;ind;i+) /*i 原矩阵的列下标*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 计算机科学与工程学院计算机程序设计基础实验报告5 for(j=0;jtd;j+) /*j 原三元组顺序表的下标*/ if(taj.q=i) /* 寻找原矩阵中最小列下标*/ tbnn.p=taj.q; tbnn.q=taj.p; tbnn.x=taj.x; nn+; /*矩阵输出 */ voi

10、d 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; 实 验 内 容名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,

11、共 8 页 - - - - - - - - - 计算机科学与工程学院计算机程序设计基础实验报告6 3. 测试用例:1, 当输入原稀疏矩阵为A33=2,0,3;1,0,4;0,0,1时程序运行结果如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - 计算机科学与工程学院计算机程序设计基础实验报告7 2. 当输入稀疏矩阵为A22=1,0;0,2时运行结果如下:实 验 内 容名师资料总结 - - -精品资料欢迎下载 - - - - -

12、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 计算机科学与工程学院计算机程序设计基础实验报告8 实 验 总 结4. 实验总结:针对稀疏矩阵的压缩存储应用,通过本次实验对它有一定的系统了解,在这次实验的的过程当中起初有很多问题比较疑惑,甚至根本动不了手,但是通过资料的查询,以及向同学的请教,这些问题很快就解决掉了,通过对稀疏矩阵的三元组存储方式省掉了系统的很多空间,也提高了效率,这对日后的编程打下了一定的基础。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁