在一维数组中,一旦a的存储地址LOC(a)确定,并假设每个数据元素占用k个存储单元,则任一数据元素a的存储地址LOC(a)就可由以下公式求出:LOC(a,)=LOC(a,)+(i-1)*k(O≤i<n)上式说明,一维数组中任一数据元素的存储地址可直接计算得到,即一维数组中任一数据元素可直接存取,因此,一维数组是一种随机存储结构。同样,二维及多维数组也满足随机存储特性。6
在一维数组中,一旦a1的存储地址LOC(a1 )确定,并假设每个 数据元素占用k个存储单元,则任一数据元素ai的存储地址 LOC(ai )就可由以下公式求出: LOC(ai )=LOC(a1 )+(i-1)*k (0≤i≤n) 上式说明,一维数组中任一数据元素的存储地址可直接计算 得到,即一维数组中任一数据元素可直接存取,因此,一维数组是 一种随机存储结构。同样,二维及多维数组也满足随机存储 特性。 6
对于一个m行n列的二维数组Amxn,有:a1,2ai.1a2,1a2,2a,每一行为一个一维数组mxnam,1am,2am,n将Amx,简记为A,A是这样的一维数组:A=(a,a....,aj....am其中, a,-(ai,1,a;2...,ai,n)(1≤i≤m)
= m m m n n n m n a a a a a a a a a A ,1 ,2 , 2,1 2,2 2, 1,1 1,2 1, 对于一个m行n列的二维数组Am×n ,有: 将Am×n简记为A,A是这样的一维数组: A=(a1 ,a2 ,.,ai.,am ) 其中,ai=(ai,1 ,ai,2 ,.,ai,n) (1≤i≤m)。 每一行为一个一维数组 7
对于二维数组来说,由于计算机的存储结构是线性的,如何用线性的存储结构存放二维数组元素就有一个行/列次序排放问题以行序为主序的存储方式:即先存储第1行,然后紧接着存储第2行,最后存储第m行。此时,二维数组的线性排列次序为:ai,1,a1,2....,a1,n, a2,1.a2,2....,a2,ng ..., am1am,29....amn8
对于二维数组来说,由于计算机的存储结构是线性的,如 何用线性的存储结构存放二维数组元素就有一个行/列次 序排放问题。 以行序为主序的存储方式:即先存储第1行,然后紧接着 存储第2行,最后存储第m行。此时,二维数组的线性排列次序 为: a1,1 ,a1,2 ,.,a1,n , a2,1 ,a2,2 ,.,a2,n , ., am,1 ,am,2 ,.,am,n 8
对一个已知以行序为主序的计算机系统中,当二维数组第一个数据元素a的存储地址LOC(a)和每个数据元素所占用的存储单元k确定后,则该二维数组中任一数据元素a,的存储地址可由下式确定:LOC(a;i)=LOC(a1.)+[(i-1)*n+(j-D)]*k其中n为列数。本行的第列元素前面的i-1行
对一个已知以行序为主序的计算机系统中,当二维数组第 一个数据元素a1,1的存储地址LOC(a1,1 )和每个数据元素所占用 的存储单元k确定后,则该二维数组中任一数据元素ai,j的存储地 址可由下式确定: LOC(ai,j)=LOC(a1,1 )+[(i-1)*n+(j-1)]*k 其中n为列数。 前面的i-1行 本行的第j列元素 9
同理可推出在以列序为主序的计算机系统中有:LOC(ai)=LOC(a1.,)+[(i-1)*m+(i-1)]*k其中m为行数。本列的第行元素前面的i-1列10
同理可推出在以列序为主序的计算机系统中有: LOC(ai,j)=LOC(a1,1 )+[(j-1)*m+(i-1)]*k 其中m为行数。 前面的j-1列 本列的第i行元素 10