好运时时彩公式_【二】、什么是抽象数据类型

  • 时间:
  • 浏览:1

前言

在上一篇【哪几种是数据底部形态】中我完全介绍了我对数据底部形态的理解,嘴笨 描述数据底部形态,有一一个很好的辦法 叫抽象数据类型。下面我会完全介绍抽象数据类型

抽象数据类型

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