什么是ADT?抽象数据类型详解!

您所在的位置:网站首页 抽象数据类型的概念包括 什么是ADT?抽象数据类型详解!

什么是ADT?抽象数据类型详解!

2024-07-12 00:32| 来源: 网络整理| 查看: 265

很多小伙伴在翻开数据结构的第一节课,听到的就是一个名为抽象数据类型(Abstract Data Type,ADT)的概念,而有些教材对这个概念的介绍过于书面化,今天小编就来简单的用比较轻松的方式来介绍一下这个概念吧。

来自课本的介绍(内容截取自百度百科相关词条)

抽象数据类型( ADT,Abstract Data Type)是指一个数学模型以及定义在此数学模型上的一组操作。它通常是对数据的某种抽象,定义了数据的取值范围及其结构形式,以及对数据操作的集合。以复数为例,它的抽象数据类型如下:

ADT complex{ 数据对象:D={real, image | real∈实数, image∈实数} [3] 数据关系:R={} [3] 基本操作: [3] InitComplex(&C) 操作结果:构造一个复数。 GetReal(C, &real) 初始条件:复数C存在。 操作结果:用real返回复数C的实部。 GetImage(C, &image) 初始条件:复数C存在。 操作结果:用image返回复数C的虚部。 OutputComplex(C) 初始条件:复数C存在。 操作结果:输出复数C的值。 Add(C1,C2,&C) 初始条件:复数C1,C2存在。 操作结果:用复数C返回复数C1,C2的和。 Sub(C1,C2,&C) 初始条件:复数C1,C2存在。 操作结果:用复数C返回复数C1,C2的差。 Mul(C1,C2,&C) 初始条件:复数C1,C2存在。 操作结果:用复数C返回复数C1,C2的乘积。 Div(C1,C2,&C) 初始条件:复数C1,C2存在。 操作结果:用复数C返回复数C1除以C2的值。 }ADT Complex 小编的介绍

看到上面的抽象数据类型,是不是感觉很抽象?实际上ADT就介绍了三件事情:数据本身,数据与数据之间的关系,以及你能对这些数据进行的操作。以我们的理解,复数的抽象数据类型里面的内容,也就是一个复数应该怎么组成,根据复数的相关知识,我们知道复数有实部和虚部组成,虚部由一个有理数*i组成,所以一个复数应该有存储一个实部的数据,一个虚部的数据,这也就对应了上面ADT中数据对象的内容,这就是数据本身。

我们知道一个复数的抽象数据类型中有两个数,一个是实部,一个是虚部,那么实部和虚部的数据有什么关系呢?就是上面的那种关系,也就是实部和虚部组合成一个复数。

关于复数的操作,我们定义在基本操作中,比如我们需要这个数据结构能够查看实部,查看虚部,复数运算等,都可以定义在这里。

有了这样的一个抽象数据类型,我们就可以知道怎么去实现一个复数对象,以及这个复数对象需要哪些操作了。(实际上ADT中的操作可以不用全部实现,这样可以减少自己的开发量也可以减少代码量,不过这样的数据结构只能专属于这个代码,并不能通用)

 如果小伙伴有接触过面向对象的相关概念,你会发现ADT和对象具有很高的相似之处,比如他们都有属性(数据对象)和对属性操作的方法(基本操作),ADT中多了数据与数据之间的关系,但这个在对象中也可以进行定义。

小结

以上就是ADT全部内容了,十分遗憾的是关于数据结构和算法的内容本站并没有收录相关手册,不过本站的技术头条内有很多算法相关的文章,小编也会继续给小伙伴分享数据结构相关的知识,希望小伙伴们继续关注W3Cschool后续文章!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3