数组的顺序存储结构
由于数组一般不作插入或删除操作,也就是说,一旦建立了数组,则结构中的数据元素个数和元素之间的关系就不再发生变动。因此,采用顺序存储结构表示数组是自然的事了。
一、一维数组顺序存储结构
一维数组a[t]是由元素a[0],a[1],...,a[t-l]组成的有限序列,若数组的每个元素占s个存储单元,并且从地址a开始依次分配数组各元素,则分配情况为:
矩阵是科学与工程计算问题中常用的数学对象之一。
若用LOC(a[i])来表示数组的第i个元素的存储位置,则.
LOC(a[i])=LOC(a[0])+i*s=a+i*s
(0<i<=t-1)
二、二维数组顺序存储结构
二维数组顺序存储有两种方式:一种是以行序为主序,另一种是以列序为主序。
首先存储行号为0的n个元素,对于这n个元素按列号从小到大依次存储:紧接着存储行号为1的n个元素…最后存储行号为m-1的n个元素。
地址计算
LOC(a[i][j])=LOC(a[0][0])+(i*n+j)*s=a+(i*n+j)*s
首先存储列号为0的m个元素,对于这m个元素按行号从小到大依次存储:紧接着存储列号为1的m个元素…最后存储列号为n-1的m个元素。
地址计算
LOC(a[i][j])=LOC(a[0][0])+(j*m+i)*s=a+(j*m+i)*s
多维数组的顺序存储
以上规则可以推广到多维数组的情况:行优先顺序也称为低下标优先或左边下标优先于右边下标。具体实现时,按行号从小到大的顺序,先将第一行中元素全部存放好,再存放第二行元素,第三行元素,依次类推……
在BASIC语言、 PASCAL语言、 C/C++语言等高级语言程序设计中,都是按行优先顺序存放的。
列优先顺序也称为高下标优先或右边下标优先于左边下
矩阵的存储方法 来自淘豆网www.taodocs.com转载请标明出处.