




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、稀疏矩阵的压缩存储(1) 稀疏矩阵的定义:在矩阵中,多数的元素为0,则称此矩阵为稀疏矩阵三元组类:/定义三元组public class Triple int row;/行号int col;/列号double val;/元素值/对各项数据进行初始化public Triple(int row,int col,double val) this.row=row;this.col=col;this.val=val;public String toString() /输出三元组项return "("+row+","+col+","+val+&qu
2、ot;)"(2)用三元组顺序表实现稀疏矩阵:(3)其中包括了稀疏矩阵的转置: 注:(2)(3)放到了一块import java.util.ArrayList;/稀疏矩阵的定义public class SparseMatrix private int rows;/行private int cols;/列private ArrayList<Triple> terms;/保存三元组/创建public SparseMatrix(int rows,int cols,ArrayList<Triple> t) / TODO Auto-generated constructo
3、r stubthis.rows=rows;this.cols=cols;terms=t;/输出public void output() System.out.println("稀疏矩阵的总行数和总列数分别为:"+rows+","+cols);for(int i=0;i<terms.size();i+) System.out.print(terms.get(i);/转置 返回结果为SparseMatrix型public SparseMatrix transpose() /保存转置后的结果SparseMatrix t=new SparseMatrix(
4、cols,rows,new ArrayList<Triple>();if(terms.size()=0)/空矩阵return t;for(int k=1;k<=cols;k+) /列数作为最外层循环的终止条件 每次扫描原稀疏矩阵的一列for(int j=0;j<terms.size();j+) /都取出来了Triple x=(Triple)terms.get(j);if(x.col=k)/如果x是第k列的元素t.terms.add(new Triple(k,x.row,x.val);/行列互换 值不变/if/forreturn t;测试稀疏矩阵的转置:/稀疏矩阵应用-&
5、gt;转置import java.util.ArrayList;public class Matrix public static void main(String args) ArrayList<Triple> list=new ArrayList<Triple>();/辅助SparseMatrix的构造器list.add(new Triple(1,3,3);list.add(new Triple(1,4,6);list.add(new Triple(2,3,-9);list.add(new Triple(3,1,8);list.add(new Triple(3,3,
6、4);list.add(new Triple(3,5,6);list.add(new Triple(4,2,8);list.add(new Triple(5,3,-3);/稀疏矩阵行列数分别为6,5SparseMatrix s=new SparseMatrix(6,5,list);System.out.println("未转置之前的矩阵为(只输出非零元素):");s.output();System.out.println();System.out.println("转置之后的矩阵为(只输出非零元素):");SparseMatrix ss=s.transp
7、ose();ss.output();上述测试稀疏矩阵的转置程序中定义的矩阵的向量cpot的值以及num的值:col12345numcol11411cpotcol12378(4)1结构定义:ADT SparseMatrix 数据对象:D=aij | i=1,2,m; j=1,2,.,n;aijElemset, m和n分别称为矩阵的行数和列数 数据关系:R=Row,Col Row=<ai,j , ai,j+1> | 1&
8、lt;=i<=m, 1<=j<=n-1 Col= <ai,j , ai+1,j> | 1<=i<=m-1, 1<=j<=n 基本操作: SparseMatrix(int rows,int cols,ArrayList<Triple> t) 操作结果:创建稀疏矩阵 output() 初始条件:稀疏矩阵已存在 操作结果:打印稀疏矩阵 transpose() 初始条件:稀疏矩阵已存在 操作结果:返回稀疏矩阵的转置ADT SparseMatrix 2稀疏矩阵的存储结构的定义:class SparseMatrix private int
9、rows;/行private int cols;/列private ArrayList<Triple> terms;/保存三元组 三元组Triple:public class Triple int row;/行号int col;/列号double val;/元素值/对各项数据进行初始化public Triple(int row,int col,double val) this.row=row;this.col=col;this.val=val;public String toString() /输出三元组项return "("+row+","+col+","+val+")
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南昌职业大学《小学教师职业道德规范》2023-2024学年第二学期期末试卷
- 延安大学西安创新学院《蛋白质及酶工程》2023-2024学年第二学期期末试卷
- 华东交通大学《文化社会学》2023-2024学年第二学期期末试卷
- 广西培贤国际职业学院《韩国语会话一》2023-2024学年第二学期期末试卷
- 四川电影电视学院《数学(统计)》2023-2024学年第二学期期末试卷
- 2024年度浙江省专利代理师科目一(专利法律知识)考前练习题及答案
- 教育心理学在解决孩子行为问题中的应用
- 教育大数据分析在提高学生学习动力中的应用
- 河北轨道运输职业技术学院《水科学概论》2023-2024学年第二学期期末试卷
- 探索教育科技对商业领域的积极影响
- 英语社团活动课件
- 第三方检测市场部管理制度提成方案
- 学前儿童发展心理学-情感
- 二年级下册数学教案 《生活中的大数》练习课 北师大版
- GB∕T 16762-2020 一般用途钢丝绳吊索特性和技术条件
- 电网施工作业票模板
- 精选天津市初中地理会考试卷及答案
- T∕CAEPI 31-2021 旋转式沸石吸附浓缩装置技术要求
- 国家级高技能人才培训基地建设项目实施管理办法
- 彩盒成品检验标准
- 落地单排脚手架
评论
0/150
提交评论