快3官方_【二】、什么是抽象数据类型

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