|
一、多维数组的基本概念
作为最常用的数据结构之一,数组是数量和元素类型固定的有序序列,静态数组必须在定义时指定其大小和类型,而动态数组可以在程序运行中才分配内存空间。多维数组可以看作是线性表的推广。一维数组可以看成一个线性表,二维数组可以看作是“数据元素是一维数组”的一维数组,三维数组可以看成“数据元素是二维数组”的一维数组,以此类推。
数组一般采取顺序存储方法,
因为数组结构中元素个数相对固定,一旦生成,只改变元素的值,并不改变元素的相对位置和个数。数组的顺序存储与数组的周游方式紧密相关。数组的周游是按一定规律,系统地访问一个数组中的所有元素,且对每个元素恰好访问一次。把数组元素按周游的顺序排列起来,得到的一个包含所有数组元素的线性序列。
数组的周游分为行优先顺序和列优先顺序两种方式。
行优先顺序顾名思义,是按行的方式存储或访问数组的每个元素,访问完第m
行的元素之后再访问第m+1行的元素。推广到多维的情况,先对最右的下标从小到大一一访问,再从右到左,最后对最左下标进行一一访问。
与此对应,列优先顺序是按列访问数组的每个元素,访问完第m
列的元素之后再访问第m+1列的元素。推广到多维的情况,先对最左的下标从小到大一一访问,再从左到右,最后对最右下标进行一一访问。
作为多维数组的最常见的也最简单的形式,二维数组常被用来表示矩阵,数组的第一维和第二维矩阵分别对应矩阵的行和列。 |