5分彩娱乐app_【二】、什么是抽象数据类型

  • 时间:
  • 浏览:0

前言

在上一篇【哪此是数据社会形态】中我删改介绍了我对数据社会形态的理解,我我随便说说描述数据社会形态,有一还还有一个 很好的土法子叫抽象数据类型。下面我会删改介绍抽象数据类型

抽象数据类型

抽象数据类型英文叫华(Abstract Data Type),这里有一还还有一个 关键词,一还还有一个 叫“数据类型”,一还还有一个 叫“抽象”,它们分别是哪此意思呢?首先说哪此是数据类型呢?

数据类型,它所含了一还还有一个 东西,一还还有一个 是“数据对象集”,只是所有人 说的“是哪此东西”,第还还有一个是“数据集合相关联的操作集”,就上我在上一篇中说的,所有人 没办法 单纯讲为什去出理 图书,所有人 是要对哪此图书进行操作的,这两件事情:图书的摆放,对图书的操作,是紧密结合在并肩的。这所有人 东西在C语言里是独立出理 的,有之前 在其他面向对象的语言上端,比如C++、Java,你就会发现,它们很好的为数据类型专门设计了你你这个机制,只是一还还有一个 “”,把你你这个 数据集跟它相关的操作集封装到一还还有一个 类上端。

那再说哪此是抽象呢?

抽象,抽象的意思只是“不具体”,只是说,描述数据类型的土法子是不依赖于具体的实现的,对一还还有一个 数据类型的描述,它跟

  • 存放数据的机器无关
  • 跟数据存储的物理社会形态无关
  • 实现操作的算法和编程语言皆无关

总体来说,所有人 只描述数据对象集和相关的操作集"是哪此",所有人 不关心“它是为什做到的”你你这个 疑问图片。可能性到现在其他没办法 基础的所有人 看起来还是很抽象,没关系,我再举个例子,可能性帮助你更好的理解抽象数据类型到底是个哪此东西,你你这个 例子是关于“矩阵”的抽象数据类型的定义。

首先所有人 我你会你会你你这个 抽象数据类型一还还有一个 名称叫“矩阵”,有之前 所有人 要描述一下它的数据对象集,一还还有一个 NM的矩阵,是由NM个矩阵的元素构成的,所有人 把你你这个 元素描述成一还还有一个 三元组a,i,j,其中a是你你这个 矩阵元素的值,并肩所有人 还要能 知道你你这个 矩阵元素在矩阵上端趋于稳定的位置,只是它的行号i和列号j,就原来描述了一还还有一个 数据的对象集,相关联的操作集有其他(如下图)



所有人 来看一下,为哪此你你这个 就叫做“抽象”的表示呢?首先所有人 来看,在描述数据对象集的前一天,说a是矩阵元素的值,那你你这个 值是float?还是double?还是int?所有人 在你你这个 抽象数据类型中描述是不关心的,相应地,当要能 对它的元素值进行操作的前一天,所有人 返回的也是ElementType,是一还还有一个 通用的元素类型,我在实现你你这个 矩阵相关的所有函数的前一天,我在身后写一还还有一个 define,我你会能 哪此,我你会把它define(定义)成哪此样子,原来一句话,你实现的哪此函数是跟“你那个矩阵元素到底是哪种类型”是没办法 关系的,哪种类型全是 还要能 运算的。这就出理 了你对int实现了一遍,下一次矩阵变成double类型的,结果你又对double……难道重新写一遍吗?当然是我不好我我你会直接用一还还有一个 replace(替换),我把所有的int替再加double,呃……你你这个 我我你会注意,其他地方的int真的只是int,你没办法 再加double,其他可能性会出错,总的来说呢,只是可能性你买车人一还还有一个 一还还有一个 地去替换你你这个 元素的类型一句话,会很麻烦,而抽象一下只是有你你这个 好处,这是一还还有一个 好处。另外一还还有一个 呢,像你你这个 矩阵,所有人 只是说这是一还还有一个 M*N的矩阵,至于在守护进程上端它是怎样才能一还还有一个 存法?所有人 是用二维数组去存它?还是一维数组?还是用链表?这所有人 人在抽象数据类型定义的前一天,全是 不关心的。我不管它是为什实现的,我只是说:我我你会实现的是一还还有一个 矩阵。再比如说上端图片中的Add()函数,可能性它们还要能 相加一句话,我我你会返回它们的和,原来可没说,在我算你你这个 矩阵加法的前一天,到底是先按行加呢?还是先按列加呢?我到底是用哪此语言去实现你你这个 函数呢?其他不管,这只是所谓的抽象。

此篇完

到这抽象数据类型只是完了,我我随便说说你你这个 篇只是对数据社会形态的另你你这个描述,我看过过你你这个 句话其他所有人 应该对数据社会形态有个清晰的认识了吧。提前做个预告,下篇就之前 开始 说算法了,跟前一天一样,我会清清楚楚描述,明明白白表达,我相信我的认真配得上您的关注。

 【原创声明】:买车人原创:https://www.cnblogs.com/zyx110/