抽象数据类型

来自计算思维百科
跳转至: 导航搜索
抽象数据类型.png

计算机中常常碰到一个概念是数据类型,为什么要有数据类型这个概念呢?我们举个列子,大家都需要住房子,也都希望房子越大越好。市场上有各种各样的商品房,有别墅的、公寓、单间……甚至只有两平米的胶囊房间。不同的房子适用于不同人的需要。

那么类似的,计算机中处理的数据可以是整数,也可以是带有小数的数,计算机处理时知道他们分别是整型和浮点型。不同类型的计算机在存储整数或是浮点数的时候可能并不相同,这样会不会处理起来就麻烦了?不用担心,抽象数据类型就解决了这个问题。

基本概念

以整型为例,虽然不同的计算机有不同的硬件系统,但实际上高级语言编写者才不管程序运行在什么计算机上,他们的目的就是为了实现整型数字的运算,比如a+b等。他们才不关心整数在计算机内部是如何表示的,也不管CPU是如何计算的。于是我们就考虑,无论什么计算机、什么语言都会面临类似的整数运算,我们可以考虑将其抽象出来。有了有了抽象数据类型,还需要定义它运行的一组操作,例如整型可以加、减、乘除等。

抽象数据类型隐藏了具体信息,可以让人们专注于这类数据的特点,而不要被其内容具体的实现方法所困扰。

应用范围

抽象数据类型可以用来对很多相似的概念进行抽象和归类。

应用案例

应用1-盖房子

案例:在日常生活中,我们需要对盖好的房子进行装修,装修要画图纸,图纸上会有门、地板等符号。不同的业主会采用不同的门,或是地砖,但是不需要重画一张图。在这里,图纸中的门和地砖都是抽象数据类型,他们代表某一类建材,但并不特指某一品牌的建材。

应用2-社团策划

案例:校义工联助童分会现要举办一个“社区自闭症倡导活动”

解决步骤:会长团已确定了策划书,具体要给每个部门明确分工。比如宣传部需要对活动主题做相应的宣传海报,传单,文娱部要排两个节目,秘书部要和社团负责人进行沟通,上传下达。组织部要负责活动的物资准备。这就类似于抽象数据类型中的问题分解。秘书部的人不需要知道海报要怎么设计,传单去哪里打印等,文娱部不需要知道秘书部的人哪一天去社区踩点,社区负责人是谁。这就相当于抽象数据类型中的信息隐藏。

可以体现的计算思维

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