特殊矩阵
定义
矩阵在计算机图形学中占有很重要的地位。在数据结构中我们不研究矩阵的运算,而是侧重于如何将矩阵高效的存储在内存中,并能方便的提取矩阵中的元素。
数组的概念
数组是由n(n>=0)个相同类型的数据元素构成的有限序列,每个数据元素称为一个数组元素,每个元素在n个元素中线性关系的序号称为该元素的下标。
数组是线性表的推广,一维数组就是一个线性表,二维数组可视为元素是定长线性表的线性表。大多数语言都提供了数组类型,在各语言中比如C、C++、Java,数组下标都是动0开始的。
以一维数组A[0,1,…,n-1]为例,其存储结构关系式为:
LOC(ai) = LOC(a0) + i*L (0 <= i < n),其中L为一个元素的存储长度。
对于多维数组,有两种映射方法,按行优先和按列优先。以二维数组为例,按行优先存储的基本思想是,先行后列,先存储行号较小的元素,行号相等先存储列号较小的元素。设二维数组的行下标和列下标的范围为[0,h1]与[0,h2],则存储结构关系式为:
LOC(ai,j) = LOC(a0,0) + [i*(h2+1) + j]*L (0 <= i <n)