十一、数组和广义表


(一)、数组的基本概念

数组除了初始化和销毁以外,在数组中通常只有下面两种操作。

  • 读操作:给定一组下标,读取相应的数组元素。
  • 写操作:给定一组下标,存储或者修改相应的数组元素。

几乎所有的计算机高级语言都实现了数组数据结构,并称之为数组类型。这里以 C/C++语言为例,其中数组数据类型具有以下性质:

  1. 数组中的数据元素数目固定,一旦定义了一个数组,其数据元素数目不再有增减的变化。
  2. 数组中的数据元素具有相同的数据类型
  3. 数组中的每个数据元素都和一组唯一的下标对应。
  4. 数组是一种随机存储结构,可随机存取数组中的任意数据元素。

因此,用户可以在C/C++程序中直接使用数组来存放数据,并使用数组的运算符来完成相应的功能。


(二)、数组的存储类型

数组特别适合采用顺序存储结构:将数组所有元素存储在一块地址连续的内存单元中。

  • 一维数组
dataType a[n];
//其中dataType为数据类型,如int型

数据结构(知识点碎片十一)_二维数组

  • 二维数组
dataType a[m][n];
//其中dataType为数据类型,如int型
  • 行优先存储

数据结构(知识点碎片十一)_数组下标_02

数据结构(知识点碎片十一)_一维数组_03

  • 列优先存储

数据结构(知识点碎片十一)_数组下标_04

数据结构(知识点碎片十一)_一维数组_05

  • 求下标

数据结构(知识点碎片十一)_数组_06