前面讲过,数组是一种“特殊”的线性存储结构,它不会对内部的元素做插入和删除操作,有可能做查找(读取)和修改操作。因此,我们经常选用顺序存储结构(顺序表)来实现数组,而不用链式结构(链表)。
顺序表查找和修改元素的效率比链表高,而插入和删除元素的效率不如链表。
数组可以是多维的,而顺序表只能是一维的线性空间。要想将 N 维的数组存储到顺序表中,可以采用以下两种方案:
- 以列序为主(先列后行):按照行号从小到大的顺序,依次存储每一列的元素;
- 以行序为主(先行后序):按照列号从小到大的顺序,依次存储每一行的元素。
多维数组中,最常用的是二维数组,接下里就以二维数组为例,讲解数组的顺序存储结构。
图 1 二维数组
例如,将图 1 所示的二维数组按照“列序为主”的方案存储时,数组中的元素在顺序表中的存储状态如下图所示: