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

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