



免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告课程名:数据结构(C语言版)实验名:矩阵的压缩存储姓 名: 班 级: 学 号: 时 间:2014.11.23一 实验目的与要求1. 掌握并实现稀疏矩阵的压缩存储的方法2. 在该存储方法上实现矩阵的操作二 实验内容 判断一个用二维数组存储的矩阵是不是稀疏矩阵 将其转化为压缩存储的形式 在压缩存储上实现矩阵的乘法和转置操作三 实验结果与分析压缩转置程序:#include/判断该矩阵是否为稀疏矩阵#define m10#define n10int 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;/赋初值为0for(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;/赋初值为0int 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 m13#define n14#define m24#define n22int 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;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文化器材行业数字化展陈设备发展趋势及市场前景研究报告
- 2025年汽车行业共享出行模式发展与市场前景研究报告
- 2025年虚拟现实旅游行业技术发展与市场前景研究报告
- 2025年生物科技行业创新技术及市场前景研究报告
- 2025年汽车智能网联行业车联网技术前景展望研究报告
- 2025年清洁能源产业发展前景分析研究报告
- 寿阳县2025山西晋中市寿阳县事业单位招聘44人笔试历年参考题库附带答案详解
- 定州市2025年河北保定定州市事业单位公开招聘480人笔试历年参考题库附带答案详解
- 国家事业单位招聘2025民航博物馆面向社会招聘7人笔试历年参考题库附带答案详解
- 国家事业单位招聘2025中国农业科学院生物技术研究所生物技术研究所第一批招聘笔试历年参考题库附带答案详解
- 以友辅仁教案
- 经济效益证明(模板)
- 某机库施工方案
- 医院各科室物品采购清单
- 生物竞赛动物学教学课件第十一章 节肢动物门
- 项目施工重大安全隐患排查表
- 材料、构配件进场检验记录
- 《Unit2 Let's talk teens》教学设计教案
- 电生理发展史
- 高中历史 选择性必修3 古代战争与地域文化的演变 课件
- T∕CBMF 95-2020 T∕CCPA 19-2020 内衬玻璃钢钢筋混凝土复合管
评论
0/150
提交评论