IT Notes‎ > ‎Data Structure‎ > ‎

array

【中文名】数组(中国),陣列(台灣)
【定义】数据项的集合,数据项可以通过整数索引访问到。
【操作定义】忽略数组包含的数据项的数量,数组可以被视为包含如下操作的数据结构:
  1. new()
  2. set(i, v, A)
  3. get(i, A)

注:i 是整数索引,v 是数据项的值,A 表示数组。从公理化语义上讲,这些操作可以被定义为如下:

  1. new() returns an array
  2. get(i, set(i, v, A)) = v
  3. get(i, set(j, v, A)) = get(i, A) if i ≠ j

数组是确定的长度的,数组的索引通常有基于 0(0-based indexing) 或基于1(one-based indexing)的,基于0就是第一个元素的下标是0的意思。C/C++ 和 Java 中,就选用的是基于0的索引,而在 VB 中,不同的函数可能使用不同的方式(参这里)。理论上,下标可以基于任意整数。

 语言0-based  
 1-based
 C Y
 
 C++ Y 
 Java Y 
 VB Y
 Y
 C# Y 
 JavaScript Y 

C 的数组和指针结合起来有一些有意识的现象,比如 a[3] 和 3[a] 表示同样的值。本站有关 JavaScript 数组的内容参这里。Java不采用指针算法,而使用真正的阵列。Java 对数组提供一个属性 length 以获取它的长度(含有元素的个数)。

数组的维度。数组并没有限定数据项(元素)的类型,因而理论上就可以嵌套了,嵌套的层级就是数组的维度,嵌套为0,就是一维数组,嵌套为1就是二维数组,以此类推。

个人以为,可以把 array 视为 list 的一个特例。

參考:http://xlinux.nist.gov/dads/HTML/array.html
Comments