数据结构与算法C语言版<2>——抽象数据结构

7 篇文章 0 订阅

抽象数据结构(Abstract Data Type)(ADT)

1.定义:抽象数据结构是指在一个数学模型以及定义在此模型中的一系列操作。

              注意:❶抽象数据类型不考虑计算机内的具体存储结构与运算的具体实现方法

(就是说抽象数据类型的意义在于有了他之后我可以更加简单的了解某一个或者一类问题,但是我不需要去考虑他具体怎么在电脑内存里运行和存储。)

                  ❷抽象数据类型=逻辑结构+数据的算法

2.抽象数据类型的形式定义:

抽象数据类型可用(D,S,P)三元组表示;

其中:D是数据对象;S是D上的关系;P是对D的基本操作集。

(前边曾经也定义过数据结构:Date Structure=(D,S)即二元组,这里也很明显,抽象数据类型=数据结构(这里指逻辑结构)+数据算法)

3.抽象数据类型的定义格式:

ADT 抽象数据类型名{
        数据对象:<数据对象的定义>
        数据关系:<数据关系的定义>
        基本操作:<基本操作的定义>
} ADT 抽象数据类型名

其中“基本操作的定义”格式为 

基本操作名(参数表)
        初始条件:<初始条件描述>
        操作结果:<操作结果描述>

注意:

 ❶参数表:基本操作有两种参数:一种是只提供值;另一种是除了提供值之外还有返回操作结果,所以表示形式就分为两种:1.直接引入 2.以"&"开头,如对于某一可以缩放的图形,G缩放n倍后的结果G’=Scale(G,n),那么我也可以直接写成 Scale(&G,n)

❷初始条件:描述操作之前数据结构和参数应该满足的条件,如不满足,操作失败并返回相应的出错信息。若初始条件为空,则省略之。

❸操作结果:说明操作正常完成后,数据结构的变化状况和相应的返回结果。

以圆的定义举例:

ADT Circle{
    数据对象:D={r,x,y|r,x,y均为实数}
    数据关系:R={<r,x,y>|r是半径,<x,y>是圆心坐标}
    基本操作:
        Circle(&C,r,x,y)             //操作名称1(参数表)
            操作结果:构造一个圆。    //操作结果,这里没有初始条件。

        double Area(C)               //操作名称2(参数表)
            初始条件:圆已存在。      //初始条件2
            操作结果:计算面积。      //操作结果

        double Circumference(C)      //操作名称3
            初始条件:圆已存在        //初始条件3
            操作结果:计算圆的周长    //操作结果3
                    .
                    .
                    .

}ADT Circle

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值