分分pk10总代 _【二】、什么是抽象数据类型

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