1.5分pk10倍率 _【二】、什么是抽象数据类型

  • 时间:
  • 浏览:3
  • 来源:小高教程网_提供群哥教程网技术_QQ技术导航资讯

前言

在上一篇【这种 是数据特性】中我完整版介绍了我对数据特性的理解,确实描述数据特性,一个 很好的依据 叫抽象数据类型。下面我会完整版介绍抽象数据类型

抽象数据类型

抽象数据类型英文又名(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/