我们对已有的数据类型进行抽象,就有了抽象数据类型。

抽象数据类型(Abstract Date Type, ADT):是指一个数学模型及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。

为什么有了数据类型,还要有抽象数据类型呢?

各个计算机,不管是大型机、小型机、PC、平板电脑、PDA, 甚至智能手机都拥有“整数”类型,也需要整数间的运算,那么整型其实就是一个抽象数据类型,尽管它在上面提到的这些在不同计算机中实现方法上可能不一样,但由于其定义的数学特性相同,在计算机编程者看来,它们都是相同的。因此,“抽象”的意义在于数据类型的数学抽象特性。

而且,抽象数据类型不仅仅指那些已经定义并实现的数据类型,还可以是计算机编程者在设计软件程序时自己定义的数据类型,比如我们编写关于计算机绘图或者地图类的软件系统,经常都会用到坐标。也就是说,总是有成对出现的x和y,在3D 系统中还有z出现,既然这三个整型数字是始终在一起出现,我们就定义一个叫point 的抽象数据类型,它有x、y、z三个整型变量,这样我们很方便地操作一个point数据变量就能知道这一点的坐标了。

根据抽象数据类型的定义,它还包括定义在该模型上的一组操作。就像“超级玛丽”这个经典的任天堂游戏,里面的游戏主角是马里奥(Mario)。我们给他定义了几种基本操作,走(前进、后退、上、下)、跳、打子弹等。

一个抽象数据类型定义了:一个数据对象、数据对象中各数据元素之间的关系及对数据元素的操作。至于,一个抽象数据类型到底需要哪些操作,这就只能由设计者根据实际需要来定。像马里奥, 可能开始只有两种操作,走和跳,后来发现应该要增加一种打子弹的操作,再后来发现有些玩家希望它可以走得快一点,就有了按住打子弹键后前进就会“跑”的操作。这都是根据实际情况来设计的。

事实上,抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。抽象数据类型把实际生活中的问题分解为多个规模小且容易处理的问题,然后建立一个计算机能处理的数据模型,并把每个功能模块的实现细节作为一个独立的单元,从而使具体实现过程隐藏起来。

抽象数据类型(Abstract Data Type, ADT) 是一个数据结构以及定义在该结构上的一组操作的总称。它是对数据类型的抽象,抽象的意义在于数据类型不是高级程序语言支持的基本数据类型,而是自定义的数据类型。

抽象数据类型(ADT)的定义和实现通常是分开的。定义只包含数据逻辑结构的定义和所允许的一组操作;使用者通过这些定义了的操作对ADT进行操作;另一方面,实现者根据这些定义来完成ADT的各种具体实现方式。

为了便于在之后的讲解中对抽象数据类型进行规范的描述,我们给出了描述抽象数据类型的标准格式:

ADT 抽象数据类型名

Data

数据元素之间的逻辑关系的定义

Operation

操作1:

前置条件:执行此操作前数据所必须的状态

输入: 执行此操作所需要的输入

功能: 该操作将完成的功能

输出: 此操作执行完成后产生的输出

后置条件: 执行此操作后数据的状态

操作2:

.

.

.

操作n:

.

.

.

endADT

对抽象数据类型的定义,不涉及实现细节,形式上可繁可简。

延伸阅读

此文章所在专题列表如下:

抽象数据类型与计算机内部表示和实现无关,第七话:抽象数据类型ADT相关推荐

  1. 抽象数据类型与计算机内部表示和实现无关,实验02 抽象数据类型的表示与实现.doc...

    文档介绍: EvaluationWarning:ThedocumentwascreatedwithSpire..蕊歼植罩胖什塌浦有夏禽院灼屉重陕馆谗肘钡枪帽潭裙富队捌狞栅试颅蛆占芝虞却轮侠靛崎刑漆联斤 ...

  2. 在计算机内部除顶点,西交17年3月课程考试《CADCAM》作业考核试题答案 1.通常我们将数据的物理结构称为数据 ......

    西交17年3月课程考试<CADCAM>作业考核试题答案 作业内容 答案请进无忧答案网下载www.op5u.com 一.单选题(共30道试题,共60分.)V1.通常我们将数据的物理结构称为数 ...

  3. 计算机内部逻辑基础,计算机逻辑基础

    计算机逻辑基础 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 <计算机组成与工作原理> 第三章 计算机的逻辑基础第三章 ...

  4. C++ signed int 在计算机内部表示

    signed int在计算机内部表示 简述 为什么是二进制? int在计算机内部作为数值型数据存储 补码 简述 程序代码在经过编译汇编等过程,转换成一条条机器指令,就像单词由一个个字母组成,计算机看待 ...

  5. 计算机内部使用什么方法技术,计算机内部使用什么技术

    计算机内部采用的是二进制编码.任何信息在计算机内都采用"0"和"1"的各种组合来表示.采用二进制的原因,一是二值器件物理上容易实现:二是在人类思维中," ...

  6. 计算机的分类及组合,第六章:组合数据类型

    A.组合数据类型概述 计算机不仅对单个变量表示的数据进行处理,更多情况,计算机需要对一组数据进行批量处理.例: 给定一组单词{python, data, function, list, loop},计 ...

  7. 详解计算机内部存储数据的形式 二进制数

    详解计算机内部存储数据的形式-二进制数 前言 要想对程序的运行机制形成一个大致印象,就要了解信息(数据)在计算机内部是以怎样的形式来表现的,又是以怎样的方法进行运算的.在 C 和 Java 等高级语言 ...

  8. 计算机内部总线和外部总线,科学网-怎样将计算机内部总线扩展为外部网络?-姜咏江的博文...

    怎样将计算机内部总线扩展为外部网络? 姜咏江 透明计算公示成果的第一条就是"将原来计算机的内部总线扩展为外部网络".现在我们来谈谈能不能将计算机内部总线扩展成外部网络. 1.什么是 ...

  9. 计算机内部信号表现形式,2021山西特岗教师招聘考试:信息技术学科基础考点归纳六...

    为了帮助考生更好的备战山西特岗教师招聘考试,临汾人事考试网整理了信息技术学科基础考点归纳,希望能对考生有所帮助!祝愿考生顺利考试,早日圆梦教师! 计算机通信有两种,一种是数字通信,另一种是模拟通信.数 ...

最新文章

  1. hdu4849 最短路
  2. 【数据挖掘笔记十三】数据挖掘的发展趋势和研究前沿
  3. Python之schedule:schedule库的简介、安装、使用方法之详细攻略
  4. Tar打包、压缩与解压缩到指定目录的方法
  5. 如何让listview或者gridview设置到底刷新新数据
  6. [渝粤教育] 西南科技大学 单片机原理与应用 在线考试复习资料(2)
  7. 十、LINQ查询之延迟执行
  8. [转载] Java是不是面向对象的程序
  9. php中file对象实例,AJAX_File, FileReader 和 Ajax 文件上传实例分析(php),File FileReader 可以干什么? Ajax - phpStudy...
  10. C++基础学习-20120516
  11. python怎么退出全屏_wxPython:退出全屏
  12. windows10环境下node js版本快速升级
  13. react 把前后台的axios请求放在一起_可靠React组件设计的7个准则之SRP
  14. git 删除已经 add 的文件
  15. SoapUI5.1.2安装和破解教程
  16. Android之Handler机制使用实例
  17. 秦殇千年轮回java游戏下载,智云稳定器如何拍旋转画面 使用稳定器拍摄画面方法...
  18. 【qq音乐歌曲下载转换为mp3格式】
  19. 多益网络2013校园招聘第二轮笔试题目
  20. 查看电脑已连接无限的无限密码

热门文章

  1. usdt充值btc网络(非节点钱包地址)
  2. OSS判断文件是否存在
  3. RTC纽扣电池供电模块电路分析
  4. 相同的网下,mac网速很慢怎么解决
  5. bbl/bibitem格式参考文献的获得
  6. Latex参考文献生成与跳转(使用bibitem)
  7. ITSS项目经理项目经理 信息技术应用创新领域-信创运维 介绍
  8. windows8网络和共享中心无法找到各种网络适配器的解决方案
  9. stream流的归约
  10. 华为OD机试之英文输入法(Java源码)