时时彩高手计划_【二】、什么是抽象数据类型

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