好运飞艇app网址_【二】、什么是抽象数据类型

  • 时间:
  • 浏览:3

前言

在上一篇【有哪些是数据内部】中我全部介绍了我对数据内部的理解,随便说说描述数据内部,一个 很好的法律措施 叫抽象数据类型。下面我会全部介绍抽象数据类型

抽象数据类型

抽象数据类型英文叫华(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/