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

  抽象数据类型需要通过高级编程语言中已经实现的数据类型(通常称之谓固有数据类型)来实现。

  例如利用C语言实现的"复数"类型如下描述:


 // 存储结构的定义
  typedef struct {
   float realpart;
   float imagpart;
  } complex;
 // 基本操作的函数原型说明
  void Assign( complex &Z, float realval, float imagval );
   // 构造复数 Z,其实部和虚部分别被赋以参数 realval 和 imagval 的值
  void DestroyComplex( complex &Z)
   // 销毁复数 Z
  float GetReal( cpmplex Z );
   // 返回复数 Z 的实部值
  float Getimag( cpmplex Z );
   // 返回复数 Z 的虚部值
  void add( complex z1, complex z2, complex &sum );
   // 以 sum 返回两个复数 z1,z2 的和
   // 基本操作的实现
  …………
  void add( complex z1, complex z2, complex &sum )
 {
  // 以 sum 返回两个复数 z1,z2 的和
  sum.realpart = z1.realpart + z2.realpart;
  sum.imagpart = z1.imagpart + z2.imagpart;
 }
  …………
   
 
  抽象数据类型的实现包括数据结构的实现和操作的实现,因此不仅要借用高级语言中的数据类型来描述它的存储结构,也要利用高级语言中已经实现的固有数据类型的操作来实现抽象数据类型的操作。