3分pk10平台客服 _【二】、什么是抽象数据类型

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