秒速时时彩下载网站_【二】、什么是抽象数据类型

  • 时间:
  • 浏览:2
  • 来源:欧力资源网 - 专注共享空木白博客分享

前言

在上一篇【哪几个是数据形态学 】中我全部介绍了我对数据形态学 的理解,我觉得 描述数据形态学 ,有有有2个很好的最好的妙招叫抽象数据类型。下面我会全部介绍抽象数据类型

抽象数据类型

抽象数据类型英文叫雪(Abstract Data Type),这里有有有2个关键词,有有2个叫“数据类型”,有有2个叫“抽象”,它们分别是哪几个意思呢?首先说哪几个是数据类型呢?

数据类型,它蕴含了有有2个东西,有有2个是“数据对象集”,全都 亲戚亲戚这每其他人说的“是哪几个东西”,第六个是“数据集合相关联的操作集”,就上我在上一篇中说的,亲戚亲戚这每其他人非要单纯讲为甚去出理 图书,亲戚亲戚这每其他人是要对哪几个图书进行操作的,这两件事情:图书的摆放,对图书的操作,是紧密结合在一齐的。这有有2个东西在C语言里是独立出理 的,为甚让在你是什么面向对象的语言底下,比如C++、Java,你就会发现,它们很好的为数据类型专门设计了四种 生活机制,全都 有有2个“”,把你是什么数据集跟它相关的操作集封放入有有2个类底下。

那再说哪几个是抽象呢?

抽象,抽象的意思全都 “不具体”,全都 说,描述数据类型的最好的妙招是不依赖于具体的实现的,对有有2个数据类型的描述,它跟

  • 存放数据的机器无关
  • 跟数据存储的物理形态学 无关
  • 实现操作的算法和编程语言皆无关

总体来说,亲戚亲戚这每其他人只描述数据对象集和相关的操作集"是哪几个",亲戚亲戚这每其他人不关心“它是为甚做到的”你是什么难题。将会到现在你是什么这麼基础的亲戚这每其他人看起来还是很抽象,没关系,我再举个例子,将会帮助你更好的理解抽象数据类型到底是个哪几个东西,你是什么例子是关于“矩阵”的抽象数据类型的定义。

首先亲戚亲戚这每其他人要给你是什么抽象数据类型有有2个名称叫“矩阵”,为甚让亲戚亲戚这每其他人要描述一下它的数据对象集,有有2个NM的矩阵,是由NM个矩阵的元素构成的,亲戚亲戚这每其他人把你是什么元素描述成有有2个三元组a,i,j,其中a是你是什么矩阵元素的值,一齐亲戚亲戚这每其他人还才能 知道你是什么矩阵元素在矩阵底下占据 的位置,全都 它的行号i和列号j,就原本描述了有有2个数据的对象集,相关联的操作集有全都全都(如下图)



亲戚亲戚这每其他人来看一下,为哪几个你是什么就叫做“抽象”的表示呢?首先亲戚亲戚这每其他人来看,在描述数据对象集的前一天,说a是矩阵元素的值,那你是什么值是float?还是double?还是int?亲戚亲戚这每其他人在你是什么抽象数据类型中描述是不关心的,相应地,当才能 对它的元素值进行操作的前一天,亲戚亲戚这每其他人返回的也是ElementType,是有有2个通用的元素类型,我在实现你是什么矩阵相关的所有函数的前一天,我在身旁写有有2个define,你才能 哪几个,让人把它define(定义)成哪几个样子,原本话语,你实现的哪几个函数是跟“你那个矩阵元素到底是哪种类型”是这麼关系的,哪种类型总要都才能 运算的。这就出理 了你对int实现了一遍,下一次矩阵变成double类型的,结果你又对double……难道重新写一遍吗?当然他说我我想要直接用有有2个replace(替换),我把所有的int替去掉 double,呃……你是什么我我想要注意,你是什么地方的int真的全都 int,你非要去掉 double,全都将会会出错,总的来说呢,全都 将会你每其他人有有2个有有2个地去替换你是什么元素的类型话语,会很麻烦,而抽象一下全都 有你是什么好处,这是有有2个好处。另外有有2个呢,像你是什么矩阵,亲戚亲戚这每其他人全都 说这是有有2个M*N的矩阵,至于在进程底下它是怎么才能 才能 有有2个存法?亲戚亲戚这每其他人是用二维数组去存它?还是一维数组?还是用链表?你是什么亲戚亲戚这每其他人在抽象数据类型定义的前一天,总要不关心的。我不管它是为甚实现的,让人说 说:我我想要实现的是有有2个矩阵。再比如说底下图片中的Add()函数,将会它们都才能 相加话语,我我想要返回它们的和,原本可没说,在我算你是什么矩阵加法的前一天,到底是先按行加呢?还是先按列加呢?我到底是用哪几个语言去实现你是什么函数呢?全都不管,这全都 所谓的抽象。

此篇完

到这抽象数据类型全都 完了,我觉得 你是什么篇全都 对数据形态学 的另四种 生活描述,我我想要看多这话语亲戚你是什么这每其他人应该对数据形态学 有个清晰的认识了吧。提前做个预告,下篇就开始 说算法了,跟前一天一样,我会清清楚楚描述,明明白白表达,我相信我的认真配得上您的关注。

 【原创声明】:每其他人原创:https://www.cnblogs.com/zyx110/