计算机科学建立在许多经典的公理之上,而抽象是其中最重要的一个。
语言的发展就是一种抽象的产物。新的简写记号能表达更广泛的概念。
一条c语句平均代表10条汇编。一条c++平均代表3条c语句。
汇编语言也包含了有用的抽象,难以察觉的是,就是“内存”与“寄存器”的概念,也是抽象,否则就要表示无数个门电路的状态变换。
文件也是抽象,你摸不着,打开硬盘也看不见,不是物理存在的。
malloc函数实现的动态内存的概念也是抽象。
————————————————————————————

程序的目的,从广义上讲,就是为了模拟现实世界。
而计算机也只能存储与处理各种数据。
因此我们需要有一种方法,可以把现实世界的问题映射到计算机里去。
在数学领域,有一种基本理念,即“万物皆数”,世界上的一切东西,都可以用各种数据来进行描述。
于是人们的重心就转向为寻找现实问题与数据的映射关系。
这种映射关系,就是现在所说的抽象数据类型。

抽象数据类型==现实问题与计算机里数据描述的映射。

抽象数据类型听起来有些绕口,可以把“抽象”理解成"想象"。

为什么需要想象呢?

因为每个人对问题的观察角度不同,需求不同,这种映射方式并没有一个"真理”性的标准。

比如人们出门旅游这个问题,有些人关注的是安全性,有些人关注的是花费,有些人关注的是效率。

不同的关注点,自然带来不同的需求,也就产生了不同的映射。

显而易见,每一种映射都是现实中某个问题的片面化描述。
所以某个具体的数据类型,对被描述的那个“问题”来说,仅仅是它的某一个方面特征。
如果改变关注点,改变了需求,意味着映射方式被改变了,那么这个具体的数据类型也就不再适用。

算法要想发挥作用,必然是依托于某个数据结构之上的(已经确定了映射方式)。
算法设计取决于选定的数据(逻辑)结构,而算法的实现依赖于采用的存储结构。

第二章 2.2 什么是抽象数据类型?相关推荐

  1. 第二章:Java面向对象:抽象(abstract)类、模板方法设计模式、接口(interface)、关键字-implements(实现)、代理模式

    package com.atguigu.java; /** Abstract关键字的使用:* 1.abstract:抽象的* 2.abstract可以用来修饰:类.方法* * 3.abstract 修 ...

  2. 计算机技术的应用 课件,计算机技术及应用基础――第二章ppt课件

    <计算机技术及应用基础――第二章ppt课件>由会员分享,可在线阅读,更多相关<计算机技术及应用基础――第二章ppt课件(64页珍藏版)>请在人人文库网上搜索. 1.第二章 VB ...

  3. 抽象数据类型Polynomial 的实现(第二章 P40-43 算法2.22,2.23)

    抽象数据类型Polynomial 的实现,多项式的加法.乘法 typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */ typedef int B ...

  4. 第二章:深入C#数据类型

    封装: 官方定义: 封装又称信息隐藏,是指利用抽象数据类型(自定义类UserInfo)将数据和数据的操作结合在一起,使其构成一个不可分割的独立实体,尽可能的隐藏内部的细节,只保留一些对外接口,使之于外 ...

  5. c语言程序设计课件第二章,c语言程序设计课件张元国 ISBN9787566300386 PPT第二章数据类型 运算符与表达式...

    1.第2章 数据类型.运算符与表达式,语言的数据类型 常量与变量 运算符与表达式 不同类型数据间的转换,2.1语言的数据类型,数据是计算机程序处理的所有信息的总称,数值.字符.文本等都是数据,在各种程 ...

  6. 【C语言】第二章 信息编码与数据类型 题解

    第二章 信息编码与数据类型 1.略 2.略 3.略 4.略 5.略 6.略 7.答案如下: (1)合法标识符:Long.int_a.sum.x001.computer.AGE._print.nCoun ...

  7. C语言(第二章):数据类型、运算符、表达式

    .:.:第二章:数据类型.运算符.表达式:.:. 第二章: 数据类型.运算符.表达式 C语言的数据类型 在第一课中,我们已经看到程序中使用的各种变量都应预先加以说明,即先说明,后使用.对变量的说明可以 ...

  8. Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 1 第一节 原则 kiss 1 第二节 提升到层次哲学层次 1 第三节 命名也要通用抽象 隐藏细节 1 第二章 通用性原

    Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 第一节 原则 kiss 第二节 提升到层次哲学层次 第三节 命名也要通用抽象 隐藏细节 第二章 通用性原则  扩展性 第一 ...

  9. C语言(苏小红)——第二章基本数据类型

    C语言程序设计 第二章基本数据类型 文章目录 C语言程序设计 2.1 常量与变量 2.1.1 常量 (Constant) 2.1.2 变量(Variable) 2.2 简单屏幕输出 2.3 计算变量或 ...

最新文章

  1. LeetCode实战:二叉搜索树中第K小的元素
  2. cors在服务器还是接口_cors
  3. 永远不要在 Mysql 中使用 “utf8”
  4. shell脚本实现检測回文字符串
  5. java面向对象程序设计董小园_java面向对象程序设计(董小园版).doc
  6. Spring Cloud 5分钟搭建教程(附上一个分布式日志系统项目作为参考)
  7. 计算机操作系统笔记(四)
  8. POST的Response数据问题
  9. 【毕业设计】 基于STM32的人体红外测温枪温度采集系统
  10. 【阿里云产品使用教程】1. 阿里云VPC ECS SLB NAT初体验 - 上
  11. TPM分析笔记(二)TPM2.0 规范文档
  12. 抗体链接InP/ZnS量子点|量子点InP/ZnS表面修饰抗体偶联服务-齐岳生物
  13. 一步完成最小二乘法、递推最小二乘法、增广最小二乘法、广义最小二乘法、辅助变量法、二步法辨识(传递函数)
  14. CM3启动汇编文件详解
  15. 删除MacOS的升级文件
  16. Axure chrome插件安装
  17. Docker常用命令(基础)
  18. 奶爸日记15 - 轮船风景
  19. 逐梦高新,智赢未来,第四届顺德高新区运动嘉年华正式拉开序幕
  20. #GPA计算(python)

热门文章

  1. 基于rv1108的以太网PHY层芯片LAN8720A的使用简介
  2. Dancing Links DLX
  3. 虚拟机linux挂载虚拟光驱
  4. UML建模之正式用例描述规范
  5. 精选汇总 | 硬件DIY
  6. [天地间]03-英国斯特拉福德小镇
  7. Cocos2d-x :什么是锚点?(简单点说:锚点就是图片的原点)
  8. X264编码的一些收藏
  9. 7-4 深入虎穴 (7分)
  10. 好莱坞大片的经典画面(搞笑)