极速时时彩官方邀请码_【二】、什么是抽象数据类型

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