




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 实验五 特殊矩阵和稀疏矩阵【实验目的】1、掌握数组的结构类型(静态的内存空间配置);通过数组的引用下标转换成该数据在内存中的地址;2、掌握对称矩阵的压缩存储表示;3、掌握稀疏矩阵的压缩存储-三元组表表示,以及稀疏矩阵的转置算法。【实验学时】2学时【实验预习】回答以下问题:1、什么是对称矩阵?写出对称矩阵压缩存储sak与aij之间的对应关系。2、什么是稀疏矩阵?稀疏矩阵的三元组表表示。【实验内容和要求】1、编写程序exp5_1.c,将对称矩阵进行压缩存储。(1)对称矩阵数组元素Aij转换成为以行为主的一维数组sak,请描述k与ij的关系。(注意C程序中,i,j,k均从0开始)(2)调试程序与运行。对称矩阵存储下三角部分即i=j。对称矩阵为 3,9,1,4,7 9,5,2,5,8 1,2,5,2,4 4,5,2,1,7 7,8,4,7,9参考程序如下:#include#define N 5int main() int upperNN= 3,9,1,4,7, 9,5,2,5,8, 1,2,5,2,4, 4,5,2,1,7, 7,8,4,7,9 ; /*对称矩阵*/ int rowMajor15; /*存储转换数据后以行为主的数组*/ int Index; /*数组的索引值*/ int i,j; printf(Two dimensional upper triangular array:n); for (i=0; iN; i+) /*输出对称矩阵*/ for(j=0; jN; j+) printf(%3d,upperij); printf(n); for(i=0; iN; i+) /*进行压缩存储*/ for(j=0; j=j_) /*下三角元素进行存储*/ Index=_i*(i+1)/2+j_; /*ij与index的转换*/ rowMajorIndex=upperij; printf(nRow Major one dimensional array:n); for(i=0; i15; i+) /*输出转换后的一维数组*/ printf(%3d, rowMajori); printf(n); return 1;2、完成程序exp5_2.c,实现稀疏矩阵的三元组表存储及稀疏矩阵的转置。调试并给出结果: 补充完整程序,运行稀疏矩阵的一般转置算法; 完成稀疏矩阵的快速转置算法,并修改主函数的转置调用算法,验证快速转置算法的正确性。exp5_2.c部分代码如下:#include#define MAXSIZE 20 /*非零元素个数最大值*/typedef int ElemType;typedef struct int i,j; ElemType e;Triple;typedef struct Triple dataMAXSIZE+1; /*三元组表,data0不用*/ int mu,nu,tu;/*矩阵的行数、列数、非零元个数*/TSMatrix;void TransposeSMatrix(TSMatrix *T,TSMatrix *M);/*一般转置算法*/void FastTransposeSMatrix(TSMatrix *M,TSMatrix *T);/*快速转置算法*/int main() /int i,j,k,q,col,p; int i,j,k; int temp67=0,12,9,0,0,0,0, /*稀疏矩阵*/ 0,0,0,0,0,0,0, -3,0,0,0,0,14,0, 0,0,24,0,0,0,0, 0,18,0,0,0,0,0, 15,0,0,-7,0,0,0, ; TSMatrix T,M; M.mu=6; M.nu=7; M.tu=0; k=1; for (i=0;i M.mu;i+) /*转换为稀疏矩阵的三元组表示*/ for (j=0;j M.nu;j+) if (tempij!=0) M.datak.i=i+1; M.datak.j=j+1; M.datak.e=tempij; k+; M.tu=k-1; FastTransposeSMatrix(&M,&T); /*调用转置算法进行转置*/ /*输出转置结果*/ printf(稀疏矩阵:n); for (i=0;i M.mu;i+) /*转换为稀疏矩阵的三元组表示*/ for (j=0;j M.nu;j+) printf(%3d,tempij); printf(n); printf(转置前M三元组表:nmutnuttun); printf(%dt%dt%dn,M.mu,M.nu,M.tu); printf(nitjten); for (i=1;i=M.tu;i+) printf(%dt%dt%dn,M.datai.i,M.datai.j,M.datai.e); printf(转置后T三元组表:nmutnuttun); printf(%dt%dt%dn,T.mu,T.nu,T.tu); printf(nitjten); for (i=1;imu=M-nu; T-nu=M-mu; T-tu=M-tu; if (T-tu) q=1; for (col=1;colnu;+col) for (p=1;ptu;+p) if (M-datap.j=col) T-dataq.i=M-datap.j; T-dataq.j=M-datap.i; T-dataq.e=M-datap.e; +q; /*稀疏矩阵的快速转置算法*/void FastTransposeSMatrix(TSMatrix *M,TSMatrix *T) int t,q,col,p,numMAXSIZE,cpotMAXSIZE; T-mu=M-nu; T-nu=M-mu; T-tu=M-tu; if (T-tu) /*快速转置过程的实现,请补充代码*/ for (col=1;colnu;+col) numcol=0; for(t=1;ttu;+t) +numM-datat.j; cpot1=1; for(col=2;colnu;+col) cpotcol=cpotcol-1+numcol-1; for(p=1;ptu;+p) col=M-datap.j; q=cpotcol;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 固精缩尿止带药课件
- 2025年无人机行业市场应用前景与发展机遇研究报告
- 2025年电子行业智能家居市场前景研究报告
- 2025年通讯设备行业通讯设备技术应用前景分析报告
- 商场员工安全防火培训课件
- 2025年电子游戏产业全球化市场前景报告
- 作品使用许可知识产权合同范本-知识产权合同5篇
- 吉林省2025春季吉林省地方水电集团有限公司招聘高校毕业生拟聘用人员笔试历年参考题库附带答案详解
- 南昌市2025上半年江西省地质局第二地质大队专业技术人才招聘5人笔试历年参考题库附带答案详解
- 乐至县2025四川资阳市乐至县引进急需紧缺专业人才88人笔试历年参考题库附带答案详解
- 2025年上半年海南三亚市知识产权保护中心选聘事业单位6人重点基础提升(共500题)附带答案详解
- 2025年辽宁现代服务职业技术学院单招综合素质考试题库附答案
- 电力电缆模拟题及答案
- 2025年药物制剂工(中级)考试题库(附答案)
- 仿古建筑施工常见问题及应对策略
- 辽宁省沈阳市2024-2025学年八年级上学期期末考试英语试题(含答案无听力原文及音频)
- 小班晨间活动体能大循环
- 绿化小型工程合同范例
- 涂层材料与叶轮匹配性研究-洞察分析
- 讯问笔录课件教学课件
- 《建筑工程设计文件编制深度规定》(2022年版)
评论
0/150
提交评论