秒速pk10规则 _【二】、什么是抽象数据类型

  • 时间:
  • 浏览:2
  • 来源:老云博客 - 专注共享蕊蕊博客资讯

前言

在上一篇【那先 是数据底部形态】中我完整篇 介绍了我对数据底部形态的理解,实在 描述数据底部形态,有另一3个 很好的法律法律依据叫抽象数据类型。下面我会完整篇 介绍抽象数据类型

抽象数据类型

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

数据类型,它中有 了另一3个 东西,另一3个 是“数据对象集”,而且什儿 人说的“是那先 东西”,第3个是“数据集合相关联的操作集”,就上我在上一篇中说的,什儿 人不需要 单纯讲为什么在去正确处理图书,什儿 人是要对那先 图书进行操作的,这两件事情:图书的摆放,对图书的操作,是紧密结合在共同的。这另一3个 东西在C语言里是独立正确处理的,而且在什儿 面向对象的语言后边,比如C++、Java,你就会发现,它们很好的为数据类型专门设计了一种生活生活机制,而且另一3个 “”,把什儿 数据集跟它相关的操作集封装下 另一3个 类后边。

那再说那先 是抽象呢?

抽象,抽象的意思而且“不具体”,而且说,描述数据类型的法律法律依据是不依赖于具体的实现的,对另一3个 数据类型的描述,它跟

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

总体来说,什儿 人只描述数据对象集和相关的操作集"是那先 ",什儿 人不关心“它是为什么在做到的”什儿 问題。肯能到现在什儿 这样 基础的什儿 人看起来还是很抽象,没关系,我再举个例子,肯能帮助你更好的理解抽象数据类型到底是个那先 东西,什儿 例子是关于“矩阵”的抽象数据类型的定义。

首先什儿 人要给什儿 抽象数据类型另一3个 名称叫“矩阵”,而且什儿 人要描述一下它的数据对象集,另一3个 NM的矩阵,是由NM个矩阵的元素构成的,什儿 人把什儿 元素描述成另一3个 三元组a,i,j,其中a是什儿 矩阵元素的值,共同什儿 人还都要知道什儿 矩阵元素在矩阵后边位于的位置,而且它的行号i和列号j,就那我描述了另一3个 数据的对象集,相关联的操作集有全都有全都有(如下图)



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

此篇完

到这抽象数据类型而且完了,实在 什儿 篇而且对数据底部形态的另一种生活生活描述,帮我看得人这话语什儿 什儿 人应该对数据底部形态有个清晰的认识了吧。提前做个预告,下篇就过后过后刚开始说算法了,跟过后一样,我会清清楚楚描述,明明白白表达,我相信我的认真配得上您的关注。

 【原创声明】:被委托人原创:https://www.cnblogs.com/zyx110/