数组压缩存储

数组压缩存储

1.一维数组的存储结构

  一般而言,如果没有特别强调,数组下标默认从零开始,各个数组元素大小相同,且物理上连续存放

  由上图可知,数组元素a[i]的存放地址为LOC+i*sizeof(ElemType)

2.二维数组的存储结构

   二维数组其实就是在一维数组的基础上多加了一个维度,分出了行和列的区别,这也导致二维数组的存储结构存在两种方式,行优先和列优先。

  列优先时,数组元素a[i]的存放地址为LOC+(j * m+i) * sizeof(ElemType)

  行优先时,数组元素a[i]的存放地址为LOC+(i * n+j) * sizeof(ElemType)

3.特殊矩阵的压缩存储方式

  • 对称矩阵的压缩存储

  由于对称矩阵的对称特性,实现确认存储的数组大小为(1+2+3+…+n)=(1+n)*n/2

  • 三角矩阵的压缩存储
  • 三对角矩阵的压缩存储
  • 稀疏矩阵的压缩存储

4.常见考试类型


数组压缩存储
https://one-null-pointer.github.io/2022/10/20/数据结构五/
Author
liaoyue
Posted on
October 20, 2022
传送口