在实际运用中,不同编程语言对于同一理论性数据结构的实现可能有所不同。在我们后面具体编程的过程中,用到的实践性数据结构和理论性数据结构也有可能不同。
本章里讲的数组和链表,是理论上的数据结构,我们关注的是逻辑层面的数据组织方式和其上操作的运行方式。
数据结构的定义
我们先来看看数组和链表的定义。
数组
在计算机科学中,数组是一种由若干元素组成的集合,每一个元素被至少一个索引(index)或者关键字(key)标识,每一个元素的位置都可以通过计算索引得到。
之所以说数组中的每一个元素至少有一个索引,是因为,一个元素还可以有两个三个或者更多的索引。因为,数组可以是1维的,也可以是2维3维乃至n维的。
1维数组,也称为线性数组,形式简单,就是一个线性的序列。2维数组看起来就会是数学中二维矩阵的形式,3维数组则会是一个数字组成的长方体。下图中包含了1维2维3维三个数组:
我们这门课里会用到的只有1维数组,所以,我们暂时不考虑2维以上(含)的情况。
一个(1维)数组一旦被创建出来,它的长度(可容纳元素的个数)就是固定的,访问其中任意一个元素都要用到该元素的索引(又称下标)。
小贴士