数组
关于数组,特别是一维数组,大家应该都特别熟悉,是由一组数据类型相同的元素组成的在内存中按照顺序存储的数据结构
二维数组可以看看成是一维数组中每个元素是数组,二维数组可以规定按行存储,也可以规定按列存储。这与语言有关,JAVA是按照行存储的
数组有一个特点是,如果我们知道首元素的地址和数组中每个元素所占内存的大小,那么就可以得到任意元素在内存中的地址
矩阵
普通矩阵
普通矩阵被视为二维数组进行存储
特殊矩阵
常见的特殊矩阵有:对阵矩阵、三角矩阵、稀疏矩阵。由于这些矩阵具有特殊性,在存储过程中我们充分考虑这些矩阵的特点以节约存储空间
对阵矩阵
根据上面的分析,我们可以用一个n(n-1)/2的数组来存储n*n的对角矩阵
三角矩阵和对阵矩阵很相似,需要存储的元素包括上三角(下三角)以及另外的常数
稀疏矩阵
如果一个矩阵中非零元素很少,那么这个矩阵就是稀疏矩阵,只需要把这些元素进行存储即可。
常见的稀疏矩阵的存储方法有:三元组法、行逻辑链接的顺序表以及十字链表法
这里只介绍第一种
三元组法
如上图所示,我们使用数组的数组或者对象数组很容易实现三元组表示法。