数据结构、数据类型、抽象数据类型之间的关系

计算机跨考选手刚刚学到了数据结构的绪论,感觉这块比较难以理解,分享一下自己的观点吧,还请大家多多指教~

严蔚敏教授编写的《数据结构》中对于以上三者的定义是:

1. 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合
2. 数据类型:是一个值的集合和定义在这个值集上的一组操作的总称。
3. 抽象数据类型: 是指一个数学模型以及定义在该模型上的一组操作。

数据结构的形式定义为:一个二元组,Data Structure = (D, S) 其中D是数据元素的有限集,S是D上关系的有限集。
抽象数据类型的形式定义为:一个三元数组,ADT = (D, S, P) 其中P是对D的基本操作集。

以下是我自己的理解:

数据结构的定义是一种对操作对象的数学描述,是从操作对象抽象出来的数学模型。这种数学模型只包括数据的逻辑结构而不包括存储结构(物理结构)和数据运算。而我们平常所说的数据结构的三要素是实现数据结构的条件。所以说定义了一个抽象数据类型就相当于定义了一个数据结构(包含了D、S),而没有真正的实现这个数据结构(还缺少存储结构)

数据类型其实包含了数据结构,注意“一个值的集合”,这个值可以是原子类型的值集和结构类型的值集,而结构类型的值集就是数据结构。这里的数据结构指的是它的定义而不是它的实现

附一张网友制作的图

数据结构、数据类型、抽象数据类型之间的关系_第1张图片

抽象数据类型的定义仅仅取决于它的一组逻辑特性,而其在计算机内部如何表示和实现无论内部的结构怎么变化,只要它的数学特性不变,都不会影响外部的使用。就是说,数据类型和抽象数据类型的相同点是他们都关心逻辑结构。不同点是数据类型既关心逻辑结构又关心物理结构,也就是关注数据结构如何实现,而抽象数据类型只关心抽象特征

你可能感兴趣的:(数据结构)