失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 抽象数据类型ADT

抽象数据类型ADT

时间:2022-07-13 04:46:16

相关推荐

抽象数据类型ADT

什么是抽象数据类型?

根据百度百科:抽象数据类型(Abstract Data Type,ADT)是计算机科学中具有类似行为的特定类别的数据结构的数学模型;或者具有类似语义的一种或多种程序设计语言的数据类型。抽象数据类型是描述数据结构的一种理论工具,其目的是使人们能够独立于程序的实现细节来理解数据结构的特性。抽象数据类型的定义取决于它的一组逻辑特性,而与计算机内部如何表示无关。

这个定义听起来确实很抽象 0.0

换种方法说,我们知道一些固定的数据类型比如int、float、char、double。。。。。。巴拉巴拉,但是这些好像并不能满足我们想做的事情。于是通过抽象数据类型,我们可以创造自己需要的数据类型,比如想实现一个Person数据类型表示人类,Dog数据类型表示狗子,人类可以跑跳学习睡觉,狗子可以跑跳叫但是它不用学习。抽象数据类型就是我们自定义的一种数据结构,它相当于把一些我们需要实现某些功能需要用到的一些相互关联的基本数据类型打包起来,用作新的数据类型,在这个新的数据类型上我们可以定义多种操作,来使这个抽象数据类型获得强大的功能,比如我们定义了一个狗子的抽象数据类型,我们需要让它实现跑、跳、睡觉、叫等操作来实现一只完整的狗子。

那么问题来了,是我冲编译器大吼一声:“呔!妖精!给我变出个狗子数据类型!”我的编译器就能实现一个抽象数据类型吗?这个问题,也许多年之后凭借强大的人工智能可以实现,至少现在不能。

所以我们需要按照规范来定义抽象数据类型。

抽象数据类型的定义

抽象数据类型可以使用三元组来表示

ADT = <D, S, P>

D : 数据对象,S : D 上的关系集,P : D 上的一组操作。

一般采用如下的结构来定义抽象数据类型:

抽象数据类型的实现

在Java中,ADT一般是通过定义一个类来实现的

抽象类型的操作可以分为4类:

(1) 构造器:创建该类型的新对象。

(2) 生产器:从该类型的旧对象创建新对象。

(3) 观察器:获取抽象类型的对象并返回不同的类型。

(4) 变值器:改变对象属性的方法。

这里举个栗子:

数据类型int:

–构造器:数字文字0,1,2,…

–生产器:算术运算符+、-、*、/

–观察器:比较运算符==,!= , < , >

–变值器:无(因为int是不可变的)

使用ADT有什么好处呢?

在模块化编程中,ADT是必不可少的。ADT提供了灵活的修改,ADT接口明确定义了程序访问的方法。

利用抽象数据类型,有利于算法的研究,因为它可以把具体的数据结构表示和算法相分隔开。

利用封装好的抽象数据类型,我们可以使操作更加集中和具体。

抽象数据类型的使用可以使用户不能直接访问数据表示,用户程序只能通过我们给定的接口中提供的操作来访问数据的值。这样的话,利用接口,我们就可以把所有的数据表示和操作方法的实现与用户程序完全地隔离开。

如果觉得《抽象数据类型ADT》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。