




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告课程名:数据结构(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;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医院建设可行性研究报告
- 特种钢项目可行性研究报告
- 健康信息化背景下2025年在线医疗患者信任构建创新模式研究
- 保险行业客户细分市场分析与精准营销策略深度研究报告
- 《情感分离协议书:经典自愿离婚协议文档》
- 香港电子合同在房地产交易中的应用与挑战
- 公共基础设施建设项目行政合同特性与风险防范
- 龙山区中医院人才引进与培养合作协议
- 拆迁协议书规范文本及注意事项
- 2025年体育医学运动损伤急救与康复评估答案及解析
- saas货运管理办法
- 2025新疆生产建设兵团草湖项目区公安局面向社会招聘警务辅助人员考试参考试题及答案解析
- 2026届广东省广州市高三上学期8月调研考试语文试题(含答案)
- 江苏省南通市如皋市2025-2026学年高三上学期开学考试数学试卷
- 2025年高一语文开学第一课指导课件
- 2025年事业单位工勤技能-河北-河北计算机操作员二级(技师)历年参考题库含答案解析(5套)
- 社会资本测量方法-洞察及研究
- 无菌GMP基础知识培训课件
- 2025年江西省公安机关人民警察特殊职位招录考试(网络安全)历年参考题库含答案详解(5卷)
- 医院副高职称评审汇报
- 肿瘤放疗并发症综合防治
评论
0/150
提交评论