C语言之抽象数据类型(四十七)

1.数据类型

定义:是一个值的集合和定义在这个值集上的一组操作的总称。

2.抽象数据类型(Abstract Data Type)

定义:抽取实际问题的本质。

指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。

具体分为:数据对象、数据对象关系的集合、数据对象基本操作的集合。

抽象数据类型的定义格式如下:
ADT抽象数据类型名(
数据对象:(数据对象的定义〉
数据关系:(数据关系的定义〉
基本操作:(基本操作的定义〉
IADT抽象数据类型名
其中,数据对象和数据关系的定义采用数学符号和自然语言描述,基本操作的定义格式为:
基本操作名(参数表)
初始条件:(初始条件描述〉
操作结果:(操作结果描述〉

例如:

计算机中使用二进制表示数据,在C语言或汇编语言则可以使用10进制表示,10进制是二进制的抽象,开发者在编程中直接使用,不必考虑实现细节。

在高级语言中(如C++),实现了更高一级的数据抽象,出现了数据类型,如int、float、char等,可以利用这些类型进一步构造出线性表、栈、队列、树、图等复杂的抽象数据类型。

3.抽象数据类型的表示与实现

  抽象数据类型的概念与面向对象方法的思想是一致的。

  抽象数据类型独立于具体实现,将数据和操作封装在一起,使得用户程序只能通过抽象数据类型定义的某些操作来访问其中的数据,
   从而实现了信息隐藏。在 C++中,我们可以用类的声明表示抽象数据类型,用类的实现来实现
抽象数据类型。因此,C++中实现的类相当于数据的存储结构及其在存储结构上实现的对数据
的操作。

  抽象数据类型和类的概念实际上反映了程序或软件设计的两层抽象:抽象数据类型相当千在
概念层(或称为抽象层) 上描述问题,而类相当于在实现层上描述问题。

 此外,C++中的类只是一 个由用户定义的普通类型,可用它来定义变量(称为对象或类的实例)。因此,在 C++中,最终是通过操作对象来解决实际问题的,所以我们可将该层次看做是应用层。例如,main程序就可看做是用户的应用程序。

猜你喜欢

转载自blog.csdn.net/u010164190/article/details/123500612