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

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

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

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

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

以下是我自己的理解:

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

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

附一张网友制作的图

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

  • 16
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值