1.5分快3靠谱吗_【二】、什么是抽象数据类型

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