10分时时彩教程_【二】、什么是抽象数据类型

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