矩阵:一个由m x n个元素排成的m行n列的表。
矩阵的常规存储:
将矩阵描述为一个二维数组。
矩阵的常规存储的特点:
可以将元素进行随机存取;
矩阵运算非常简单;存储密度为1.
不适宜常规存储的矩阵:值相同的元素很多呈某种规律分布:零元素多。
1.什么是压缩存储?
若多个数据元素的值都相同则只分配一个元素值的存储空间,且零元素不占内存空间。
2.什么样的矩阵能够压缩?
一些特殊的矩阵,如:对称矩阵,对角矩阵,三角矩阵,稀疏矩阵。
3.什么叫稀疏矩阵?
矩阵中非零元素的个数较少。
1.对称矩阵
特点:在n x n的矩阵中,满足以下性质:
aij = aji(i>.=1,j<=n)
2.存储方法:只存储下(上)三角(包括主对角线)的数据元素,共占用n(n+1)/2个元素空间。
3.对称矩阵的存储结构:
可以将行序为主序将元素存放在一个一维数组sa[n(n+1)/2]中。
2.三角矩阵
【特点】对角线以下(或者以上)的数据元素(不包括对角线)全部为常数c。
存储方法:重复元素c共享一个元素存储空间,共占用n(n+1)/2+1个元素空间
3.对角矩阵(带状矩阵)
【特点】在nxn的方针中,所有非零,所有非零元素集中在主对角线为中心的带状区域中,区域外的值全为0,则称为对角矩阵。
4.稀疏矩阵:设mxn的矩阵中t个非零元素。
稀疏矩阵的链式存储结构:十字链表
优点:他能灵活地插入因运算而产生新的非零元素,删除因运算而产生的新的零元素,实现矩阵的各种运算。
在十字链表中,矩阵的每一个非零元素用一个结点表示,该结点除了(row,col,value)以外,还有两个域: