数据结构的发展历史

数据结构是具有结构特征的数据元素的集合。它研究数据的逻辑结构、数据的物理结构以及它们之间的关系,并为这种结构定义相应的操作,设计相应的算法,保证这些操作后得到的新结构仍然保持原来的结构类型。简而言之,数据结构是相互之间具有一种或多种特定关系的数据元素的集合,即具有“结构”的数据元素的集合。“结构”是指数据元素之间的关系,可分为逻辑结构和存储结构。[2]

数据的逻辑结构和物理结构是数据结构中密切相关的两个方面,同一个逻辑结构可以对应不同的存储结构。算法的设计依赖于数据的逻辑结构,而算法的实现依赖于指定的存储结构。[2]

数据结构的研究内容是构建复杂软件系统的基础,其核心技术是分解和抽象。通过分解,可以划分三个层次的数据;然后通过抽象,丢弃数据元素的具体内容,得到逻辑结构。同样,操作的定义也是通过分解将处理需求划分成各种功能,然后通过抽象丢弃实现细节而得到的。以上两个方面结合起来,就可以把问题转化成一个数据结构。这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后通过增加对实现细节的考虑,进一步得到存储结构和实现操作,从而完成设计任务。这是一个从抽象(即数据结构)到具体(即具体实现)的过程。[3]

研究对象

数据的逻辑结构

指反映数据元素之间逻辑关系的数据结构,其中逻辑关系指数据元素之间的上下文关系,与它们在计算机中的存储位置无关。逻辑结构包括:[1]

1.集合:数据结构中的元素之间除了属于同一个集合之外,没有其他关系;[1]

2.线性结构:数据结构中的元素之间是一一对应的关系;[1]

3.树形结构:数据结构中的元素是一对多的关系;[1]

4.图形结构:数据结构中的元素之间存在多对多的关系。[1]

数据的物理结构

指数据的逻辑结构在计算机存储空间中的存储形式。[1]

数据的物理结构是数据结构在计算机中的表示(也叫图像),包括数据元素的内置表示和关系的内置表示。因为实现的方式有很多种,比如排序、链接、索引、哈希等。数据结构可以表示为一个或多个存储结构。[1]

数据元素的内置表示(映射方法):数据元素用二进制位的位串表示。这个位串通常被称为节点。当一个数据元素由几个数据项组成时,位串中每个数据项对应的子位串称为一个数据字段。因此,节点是数据元素的内置表示(或内置图像)。[1]

关系的内置表示(映射法):数据元素间关系的内置表示可分为顺序映像和非顺序映像,常用的存储结构有两种:顺序存储结构和链式存储结构。顺序图像通过数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序图像通过指示元素存储位置的指针来表示数据元素之间的逻辑关系。[1]

数据存储结构

数据的逻辑结构在计算机存储空间中的存储形式称为数据的物理结构(也称存储结构)。一般来说,数据结构的逻辑结构可以根据需要表示为多种存储结构。常用的存储结构包括顺序存储、链式存储、索引存储和散列存储。[4]

数据的顺序存储结构的特点是:用数据元素在内存中的相对位置来表达它们之间的逻辑关系;非顺序存储的特点是数据元素之间的逻辑关系用指示元素存储地址的指针来表示。[4]