数组是所有高级编程语言中都已实现的固有数据类型,因此凡学习过高级程序设计语言的读者对数组都不陌生。但它和其它诸如整数、实数等原子类型不同,它是一种结构类型。换句话说,"数组"是一种数据结构。 |
||||
5.1.1 数组的类型定义 ADT Array { 数据对象:D={aj1,j2,...,ji ,...jN | ![]() ![]() 称 N(>0) 为数组的维数, ![]() ![]() 数据关系:R={R1, R2, ..., RN} Ri={<aj1 ,...ji ,...jN , aj1 ,...,ji+1,...,jN > | 0≤jk≤bk-1, 1≤k≤N 且k ![]() 0≤ ![]() aj ,...,j ,...,j , aj ,...j+1,...,j ∈D, i=2,...,N } |
这是一个C语言风格的
n 维数组的定义,数组中共有 ![]() ![]() ![]() ![]() ![]() ![]() 看一个二维数组的简单情况。 D={ ![]() ![]() R={ROW,COL} 其中: ROW={< ![]() ![]() ![]() ![]() (称作"行关系") COL={< ![]() ![]() ![]() ![]() (称作"列关系") 上述定义的二维数组中共有 m ![]() ![]() ![]() ![]() 和线性表类似,数组中的每个元素都对应于一组下标(j1,j2,…jN),每个下标的取值范围是0≤ ![]() ![]() ![]() ![]() |