抽象数据类型

来源:互联网 发布:镇江市迈越网络 编辑:程序博客网 时间:2024/05/17 23:12

抽象数据类型

1.首先回顾一下程序设计语言中的数据类型

数据类型(data type)是一个值的集合和定义在这个值集上的一组操作的总称。

  • 原子类型:如C/C++语言的整形、字符型等标准类型及指针等简单的导出类型和空类型。
  • 结构类型:其值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的,通常是由标准类型派生的。例如,C/C++中的数组、结构等类型。

2.抽象数据类型(abstract data type, ADT)是指一个数学模型以及定义在该模型上的一组操作。它通常是指对数据的某种抽象,定义了数据的取值范围及其结构形式,以及对数据的操作的集合。

“抽象”的意义在于数据类型的数学抽象特性。

3.抽象数据类型的描述方法

(D,S,P)

D是数据对象,S是D上的关系集,P是对D的基本操作集。

4.抽象数据类型一般可以由数据对象、数据关系及基本操作来定义。

ADT  抽象数据类型

{

    数据对象(数据对象的定义)

    数据关系(数据关系的定义)

    基本操作(基本操作的定义)

}ADT 抽象数据类型名

其中,数据对象和数据关系的定义用集合描述,基本操作的定义格式为

    返回类型 基本操作名(参数表)

5.对于每个操作,包含下列5个基本要素:

  • 输入
  • 前置条件
  • 过程
  • 输出
  • 后置条件
6.基本操作有两种参数:赋值参数只为操作提供输出值;引用参数以&开头,除可提供输出值外,还将返回操作结果。

7.面向对象的程序设计(OPP)方法。

   在面向对象程序设计语言中,借助对象描述抽象数据类型,存储结构的说明和操作函数的说明被封装在一个整体结构中,这个整体结构称为类(class),属于某个类的具体变量称为对象(object)。

8.数据结构的定义为对象的属性域,过程或函数定义在对象中称为方法(method)。

9.ADT和类的概念实际上反映了程序或软件设计的两层抽象:ADT相当于是在概念层(抽象层)上描述问题,而类相当于是在实现层上描述问题。

抽象数据类型与C++中类的对应关系如下:

                         抽象数据类型——类

                         数据对象——数据成员(属性)

                         基本操作——成员函数(方法)

10.在C++中,类的成分(数据成员和成员函数)可以有3种访问级别。

  • private: 只允许类的成员函数进行访问。
  • protected:只允许类的成员函数及其子孙类进行访问。
  • public:允许类的成员函数、类的实例及其子孙类、子孙类的实例进行访问。

0 0
原创粉丝点击