一、稀疏矩阵定义
假设在mxn的矩阵中有t个非零元素,其中t/(m*n)< 0.05,那么这个矩阵是稀疏矩阵
二、稀疏矩阵存储
1、三元数组存储
稀疏矩阵可以使用三元法进行存储。即比如
vector<vector<int>> temp =
{{0,12,9,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{-3,0,0,0,0,0,0,0,14},
{0,0,2,0,0,0,0,0,0},
{0,8,0,0,0,0,0,0,0},
{15,0,0,0,0,0,0,0,-7}
}
此时为节约存储空间,使用三元法进行存储,即(i,j,aij)这种方式存储。其中i表示行,j表示列,aij表示元素。此时这个稀疏矩阵就由维度,和一系列三元数组表示完成。
2、十字链表存储
优点:这种方式可以灵活的插入因运算生成的非零元素,以及删除因运算生成的非零元素
存储方式:使用结点存储非零元素,每个结点包含一个三元数组和两个邻域分别是right和down
其中right指向同一行下一个非零元素
down指向下一列非零元素