数据结构(java语言描述)串与数组

您所在的位置:网站首页 稀疏矩阵的三元组存储方法 数据结构(java语言描述)串与数组

数据结构(java语言描述)串与数组

2024-05-10 22:57| 来源: 网络整理| 查看: 265

知识点补充:

稀疏矩阵:是具有较多零元素且非零元素的分布无规律的矩阵。(一般矩阵是用多(二)维数组存储)。

但是,稀疏矩阵的存储比较浪费存储空间,因此为了节省存储空间可以用一个三元组表来存储稀疏矩阵。

三元组表:三元组表中的任意一个三元组元素存储了稀疏矩阵中的非零元素、所在行和所在列。

稀疏矩阵转三元表表示的原理图如下(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