数据结构(java语言描述)串与数组 |
您所在的位置:网站首页 › 稀疏矩阵的三元组存储方法 › 数据结构(java语言描述)串与数组 |
知识点补充: 稀疏矩阵:是具有较多零元素且非零元素的分布无规律的矩阵。(一般矩阵是用多(二)维数组存储)。 但是,稀疏矩阵的存储比较浪费存储空间,因此为了节省存储空间可以用一个三元组表来存储稀疏矩阵。 三元组表:三元组表中的任意一个三元组元素存储了稀疏矩阵中的非零元素、所在行和所在列。 稀疏矩阵转三元表表示的原理图如下(ps手写版,比较快,将就看吧,主要是能明白^~^): java语言表示的三元组(结点)的类形式: package chuanshu;class tripleNode {//三元组的定义 private int row;//元素所在稀疏矩阵中的行号 private int col;//元素所在稀疏矩阵中的列号 private int value;//元素所在稀疏矩阵中的非零元素值 public int getcol(){ return col; } public int getrow(){ return row; } public void setcol(int col){ this.col=col; } public void setrow(int row){ this.row=row; } public int getvalue(){ return value; } public void setvalue(int value){ this.value=value; } public tripleNode(int row,int col,int value){//带行列值参数的构造方法 this.row=row; this.col=col; this.value=value; } public tripleNode(){//无参构造方法 this(0,0,0); }} 这是三元组表中存储一个非零元素的结点。 然后采用一个tripleNode类型的数组data来存储整个稀疏矩阵(多个元素结点构成了表的形式),此外还要设置成员变量来存储稀疏矩阵的行数、列数和非零元素的个数。cols/rows/nums 稀疏矩阵的三元组表的类定义: package chuanshu;/***********三元组就是用一个以为数组存储所有的元素,每个结点记录该元素在数组(矩阵)中是所在的行和列******************/public class SparseMatrix {private int rows;//稀疏矩阵的行数private int cols;//稀疏矩阵总的列数private int nums;//稀疏矩阵非0元素个数private tripleNode data[];//三元组数据结点public tripleNode[] getedata(){//返回某个三元组结点的数据值 return data;}public void setdata(tripleNode[] data){//给三元组的数据结点赋值(三元组形式row col value) this.data=data;}public int getcosl(){//获取稀疏矩阵的的总列数 return cols;}public int getrows(){//获取稀疏矩阵的的总行数 return rows;}public void setcols(int cols){//设置稀疏矩阵的的总列数 this.cols=cols;}public void setrows(int rows){//设置稀疏矩阵的的总行数 this.rows=rows;}public int getnums(int nums){//获取整个稀疏矩阵的非零元素个数 return nums;}public void setnums(int nums){//设置整个稀疏矩阵的非零元素个数 this.nums=nums;}public SparseMatrix(int maxsize){//初始化函数 data=new tripleNode[maxsize]; for(int i=0;i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |