码迷,mamicode.com
首页 > 其他好文 > 详细

稀疏矩阵的存储和乘法操作

时间:2018-07-05 13:28:14      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:16px   基础上   lan   tsm   理解   strong   sha   一个   div   

一 稀疏矩阵的存储

1.三元组顺序表

三元组表示法就是在存储非零元的同时,存储该元素所对应的行下标和列下标。稀疏矩阵中的每一个非零元素由一个三元组(i,j,aij)唯一确定。矩阵中所有非零元素存放在由三元组组成的顺序表中(通常用数组)。所以三元组的逻辑结构如下:

//————稀疏矩阵的三元组表示法————//
#define MAX_SIZE 1500  //表示稀疏矩阵的非零元素的最大个数
class Triple
{
    int i,j;//表示非零元素的行下表和列下标
    int val;//非零元素的值,此处以int类型为例
};
class TSMatrix
{
    Triple data[MAX_SIZE];
    int row_num,col_num,cnt;//稀疏矩阵的行数、列数以及非零元素的个数
};

注意,此处的非零元素的三元组是以行序为主序顺序排列的。

2.行逻辑链接顺序表

行逻辑链接顺序表的实质就是在三元组顺序表的基础上加了一个数组,这个数组用于存储稀疏矩阵中每行的第一个非零元素的在三元组顺序表中的位置(此处一定要理解对,是在三元组顺序表中的位置)。所以其逻辑结构如下:

 

//————稀疏矩阵的行逻辑链接表示法————//
#define MAX_SIZE 1500  //表示稀疏矩阵的非零元素的最大个数
#define MAX_ROW 1500  //表示稀疏矩阵的行数的最大个数
class Triple
{
    int i,j;//表示非零元素的行下表和列下标
    int val;//非零元素的值,此处以int类型为例
};
class RLSMatrix
{
    Triple data[MAX_SIZE]; //非零元三元组表
    int rpos[MAX_ROW];//每行第一个非零元素的位置
    int row_num,col_num,cnt;//稀疏矩阵的行数、列数以及非零元素的个数
};

 

  

 

稀疏矩阵的存储和乘法操作

标签:16px   基础上   lan   tsm   理解   strong   sha   一个   div   

原文地址:https://www.cnblogs.com/wangkundentisy/p/9267764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!