1、预编译
#include<stdio.h>
#include<stdio.h>
#include<string.h>
#pragma warning(disable:4996)
2、抽象数据类型的定义
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系 : <数据关系的定义>
基本操作 : <数据操作的定义>
}ADT 抽象数据类型名;
3、参数表:复制参数,只为操作提供输入值,引用参数以&打头,除可提供输入值外,还将返回操作结果。
4、抽象数据类型ADT定义举例 : Circle的定义
ADT 抽象数据类型名{
Data
数据对象的定义
数据元素之间逻辑关系的定义
Operation
操作1
初始条件操作结果描述
操作 2
操作 n
......
}ADT 抽象数据类型名;
伪代码实现
ADT Circle{
数据对象:D = {r,x,y | r,x,y均为实数}
数据关系:R = {< r,x,y > | r是半径,<x,y>是圆心坐标 }
基本操作:
Circle(&C,r,x,y)
操作结果 : 构造一个圆。
double Area(C)
初始条件 : 圆已存在。
操作结果 : 计算面积。
double Circumference(C)
初始条件 : 圆已存在。
操作结果 : 计算周长。
......
}ADT Circle;
5、抽象数据类型(ADT)定义举例 : 复数的定义
ADT 抽象数据类型名{
Data
数据对象的定义
数据元素之间逻辑关系的定义
Operation
操作 1
初始条件操作结果描述
操作 2
......
操作 n
}ADT 抽象数据类型名
伪代码实现:
ADT Complex{
D = {r1,r2 | r1,r2 都是实数}
S = {<r1,r2> | r1是实部,r2是虚部}
assign(&C, v1, v2)
初始条件:空的复数C已存在构造复数C,r1,r2分别
操作结果 : 被赋以参数v1,v2的值。
destroy(&C)
初始条件 : 复数C已存在
操作结果 : 复数C被销毁。
}ADT Complex;
6、Complex抽象数据类型中的基本操作:
Assign(&Z, v1, v2)
操作结果:构造复数Z,其实部和虚部,分别被赋以参数v1、v2值。
Destroy(&Z)
操作结果 : 复数Z被销毁。
GetReal(Z, &realPart)
初始条件 : 复数已存在。操作结果用realPart返回复数Z的实部值。
Getlmag(Z, &lmagPart)
初始条件 : 复数已存在。操作结果:用lmagPart返回复数Z的虚部值。