幸运pk10代理_【二】、什么是抽象数据类型

  • 时间:
  • 浏览: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/