




免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告课程名:数据结构(c 语言版) 实验名:矩阵的压缩存储姓名:班级:学号:时间: 2014.11.23精品资料一 实验目的与要求1. 掌握并实现稀疏矩阵的压缩存储的方法2. 在该存储方法上实现矩阵的操作二 实验内容? 判断一个用二维数组存储的矩阵是不是稀疏矩阵? 将其转化为压缩存储的形式? 在压缩存储上实现矩阵的乘法和转置操作三 实验结果与分析压缩转置程序:#include/判断该矩阵是否为稀疏矩阵#define m10#define n10 int amn=1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,;struct threeint i,j;int value;struct three stu100;struct three1int i,j;int value;struct three1 stu1100;int jiance()int x=0;/ 赋初值为 0 for(x=0;x=99;x+)stux.value=0;float t=0; float v;for(int i=0;im;i+)for(int j=0;jn;j+)if(aij!=0)t+;if(v=t/(m*n)=0.05)printf( 该矩阵为稀疏矩阵 %fn,v); return 1;elseprintf( 该矩阵不是稀疏矩阵 n); return 0;void yasuo()int t=0;for(int r=0;rm;r+)for(int c=0;cn;c+)if(arc!=0)stut.i=r;stut.j=c; stut.value=arc; t+;void display()int x=0;printf( 压缩矩阵的三元组为 :n); for(x=0;x=99;x+)if(stux.value=0)break;printf(%d,%d,%d ,stux.i,stux.j,stux.value);printf(n);void zhuanzhi()int x=0;/ 赋初值为 0 int t=0;int num10=0,0,0,0,0,0,0,0,0,0;/每一列非 0 的数目for(x=0;x=99;x+)stu1x.value=0;for(int j=0;jn;j+)for(int i=0;im;i+)if(aij!=0)numj+; t+;int cpot10=0,0,0,0,0,0,0,0,0,0;cpot0=0; for(j=1;jn;j+)cpotj=cpotj-1+numj-1;int col=0; int q=0;for(int k=0;kt;k+)col=stuk.j; q=cpotcol;stu1q.i=stuk.j;stu1q.j=stuk.i; stu1q.value=stuk.value;+cpotcol;void display1()int x=0;printf( 转置以后的三元组为 :n); for(x=0;x=99;x+)if(stu1x.value=0) break;printf(%d,%d,%d ,stu1x.i,stu1x.j,stu1x.value);printf(n);void display2()int d,b; for(d=0;dm;d+)for(b=0;bm;b+)printf(%d,adb);printf(n);void main()display2(); if(jiance()=1)yasuo(); display(); zhuanzhi(); display1();图 1:压缩转置程序运行结果矩阵的乘法程序: #include #define m1 3#define n1 4#define m2 4#define n2 2int a1m1n1=3,0,0,5,0,-1,0,0,2,0,0,0,;int a2m2n2=0,2,1,0,-2,4,0,0,;struct three1int i,j;int value;struct three1 stu1100;struct three2int i,j;int value;struct three2 stu2100;struct three3int i,j;int value;struct three3 stu3100; int ar1posm1=0;int ar2posm2=0; int qrposm1;int yasuo1()int t=0; ar1pos0=0;for(int r=0;rm1;r+)for(int c=0;cn1;c+)if(a1rc!=0)stu1t.i=r;stu1t.j=c; stu1t.value=a1rc; t+;ar1posr+1=t;return t;int yasuo2()int t=0; ar2pos0=0;for(int r=0;rm2;r+)for(int c=0;cn2;c+)if(a2rc!=0)stu2t.i=r;stu2t.j=c; stu2t.value=a2rc; t+;ar2posr+1=t;return t;void chengfa(int x1,int x2)int a1m=0; int a2m=0;int tp,p,br,t,q,ccol;int qtu=0; for(a1m=0;a1mm1;a1m+)int ctempm1=0; if(a1m(m1-1)tp=ar1posa1m+1; elsetp=x1; for(p=ar1posa1m;ptp;+p)br=stu1p.j;if(br(m2-1)t=ar2posbr+1;elset=x2; for(q=ar2posbr;qt;+q)ccol=stu2q.j; ctempccol+=stu1p.value*stu2q.value;for(ccol=0;ccoln2;+ccol) if(ctempccol!=0)stu3qtu.i=a1m; stu3qtu.j=ccol; stu3qtu.value=ctempccol;+qtu;void display()int x=0;printf(a1与 a2 乘积之后的三元组是: n); for(x=0;x=99;x+)if(stu3x.value=0) break;printf(%d,%d,%d ,stu3x.i,stu3x.j,stu3x.value);printf(n);void display1()int m,n;printf(a1矩阵为: n); for(m=0;mm1;m+)for(n=0;nn1;n+)printf(%d,a1mn);printf(n);printf(a2矩阵为: n); for(m=0;mm2;m+)for(n=0;nn2;n+)printf(%d,a2m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030奢侈品牌限量版礼品包装溢价机制与消费心理分析
- 2025-2030垃圾焚烧发电厂脱硫技术创新与运营优化方案
- 基于2025年工业互联网平台网络隔离技术的电力系统安全防护报告
- 人体解剖学动静脉课件
- 2025年幼儿园保育教育评估指南考试试题及答案
- 2025年医疗器械经营体系相关质量管理制度试题及参考答案
- 人体结构概述课件
- 2025年某某油田股份有限公司公司员工教育培训管理规定考试试题(附答案)
- 2025年大学选修课向越野理论测试题及答案
- 荆州市高三联考数学试卷
- 固体矿产钻探工真题模拟汇编(共634题)
- 第34届全国中学生物理竞赛决赛试题及答案
- 智慧消防项目申报书
- 高级职称评定工作总结(3篇)
- 干部人事档案管理业务知识培训课件
- 软件项目开发需求规格说明书(标准模板)
- GB/T 9797-2022金属及其他无机覆盖层镍、镍+铬、铜+镍和铜+镍+铬电镀层
- GB/T 32288-2015电力变压器用电工钢铁心
- FZ/T 01008-2008涂层织物耐热空气老化性的测定
- 精神科病历书写精神科病历书写及范例
- 《乒乓裁判规则规程》考试题库(附答案)
评论
0/150
提交评论