1.2.3 数据类型和抽象数据类型

  抽象数据类型的形式描述为:
   ADT = ( D,S,P )
  其中:D 是数据对象,
     S 是 D 上的关系集,
     P 是 D 的基本操作集。
 
  例如,抽象数据类型"复数"的定义为:
 
 

 
 
  其中(D,S)即为相应的数据结构的定义。
 
  ADT Complex {
 数据对象:D = {e1,e2 | e1,e2 RealSet }

 数据关系:R1 = {<e1,e2> | e1是复数的实部,e2是复数的虚部 }
 
    用两个实数来表示复数,将复数定义为两个实数的有序对,并约定实部是前驱,虚部是后继。  
   基本操作:
  InitComplex( &Z, v1, v2 )
   操作结果:构造复数Z,其实部和虚部分别被赋以参数v1和v2的值。

  DestroyComplex( &Z)
   初始条件:复数已存在。
   操作结果:复数Z被销毁。

  GetReal( Z, &realPart )
   初始条件:复数已存在。
   操作结果:用 realPart 返回复数Z的实部值。

  GetImag( Z, &ImagPart )
   初始条件:复数已存在。
   操作结果:用 ImagPart 返回复数Z的虚部值。

  Add( z1,z2, &sum )
   初始条件:z1,z2 是复数。
   操作结果:用sum返回两个复数z1,z2的和值。

} ADT Complex
    这里仅指定复数的最小操作集,对外部用户来说,构造一个复数和从复数分别取得它们的实部和虚部是最基本的操作,没有这三个操作,这个抽象数据类型是没有实用价值的,而其它的操作可根据应用需求而定。