您的位置: 网站首页 > 程序开发 > 数据结构 > 第4章 串、数组和广义表 > 【4.5 数组的定义】

4.5 数组的定义

 

4.5  数组的定义

数组是nn>1)个相同类型的数据元素a1a2,…,an构成的有限序列,且该有限序列存储在一块地址连续的内存单元中。由此可见,数组的定义与采用顺序存储结构的线性表相似。

1.一维数组

一维数组可看成是一个线性表或一个向量,它在计算机内是存放在一块连续的存储单元中,适合于随机查找。这在线性表的顺序存储结构中已经介绍过。

2.二维数组

二维数组可以看成是这样的一个线性表:它的每个数据元素又是一个线性表。

4-6  二维数组

 

例如,图4-6所示的二维数组可以看成是由m个行向量组成的向量(C/C++中数组的起始下标为0),也可以看成是n个列向量组成的向量。其中每个元素ai,j都有两个前驱节点ai-1, jai, j-1以及两个后继节点ai+1, jai, j+1。这种规则可以推广到三维以上的数组。

3.多维数组

同理,一个三维数组可以用其数据元素为二维数组的线性表来定义。依此类推,n维数组是数据元素为n-1维数组的线性表。多维数组可以看成是由多个线性表组成的。

一般把三维或三维以上的数组称为多维数组。

多维数组的定义也很简单,以二维数组为例,其类型定义如下:

#define M       /*最大行数*/

#define N       /*最大列数*/

typedef ElemType MatType[M][N];

注意:C语言中,数组的下标从0开始。

数组一旦被定义,它的维数和维界就不再改变。因此,除了结构的初始化和销毁之外,数组只有存取元素和修改元素值的操作。