2分快3官方下载_【二】、什么是抽象数据类型

  • 时间:
  • 浏览:1
  • 来源:广东新闻网_广东主流媒体_广东门户网站

前言

在上一篇【什么是数据价值形式】中我完正介绍了我对数据价值形式的理解,人太好 描述数据价值形式,有有一1个 很好的最好的最好的办法叫抽象数据类型。下面我会完正介绍抽象数据类型

抽象数据类型

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

数据类型,它涵盖了有一1个 东西,有一1个 是“数据对象集”,然后我朋友 说的“是什么东西”,第八个是“数据集合相关联的操作集”,就上我在上一篇中说的,朋友 上能 单纯讲要怎样去避免图书,朋友 是要对什么图书进行操作的,这两件事情:图书的摆放,对图书的操作,是紧密结合在同去的。这有一1个 东西在C语言里是独立避免的,然后在某些面向对象的语言上边,比如C++、Java,你就会发现,它们很好的为数据类型专门设计了两种 机制,然后我有一1个 “”,把这名 数据集跟它相关的操作集封装到有一1个 类上边。

那再说什么是抽象呢?

抽象,抽象的意思然后我“不具体”,然后我说,描述数据类型的最好的最好的办法是不依赖于具体的实现的,对有一1个 数据类型的描述,它跟

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

总体来说,朋友 只描述数据对象集和相关的操作集"是什么",朋友 不关心“它是要怎样做到的”这名 问题报告 。不可能 到现在某些上能能 基础的朋友 看起来还是很抽象,没关系,我再举个例子,不可能 帮助你更好的理解抽象数据类型到底是个什么东西,这名 例子是关于“矩阵”的抽象数据类型的定义。

首先朋友 要给这名 抽象数据类型有一1个 名称叫“矩阵”,然后朋友 要描述一下它的数据对象集,有一1个 NM的矩阵,是由NM个矩阵的元素构成的,朋友 把这名 元素描述成有一1个 三元组a,i,j,其中a是这名 矩阵元素的值,同去朋友 还时要知道这名 矩阵元素在矩阵上边处于的位置,然后我它的行号i和列号j,就另有一1个 描述了有一1个 数据的对象集,相关联的操作集有然后我然后我(如下图)



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

此篇完

到这抽象数据类型然后我完了,人太好 这名 篇然后我对数据价值形式的另两种 描述,让我想看 这励志的话 朋友 们应该对数据价值形式有个清晰的认识了吧。提前做个预告,下篇就开始说算法了,跟以前一样,我会清清楚楚描述,明明白白表达,我相信我的认真配得上您的关注。

 【原创声明】:我所有人原创:https://www.cnblogs.com/zyx110/