2.1.1 抽象数据类型线性表的定义

  {引用型操作}
  ListEmpty( L )
   初始条件:线性表L已存在。
   操作结果:若 L 为空表,则返回 TRUE,否则返回 FALSE
 
 



  判定线性表是否为空表。
 
    ListLength( L )
   初始条件:线性表 L 已存在。
   操作结果:返回 L 中元素个数
 
    求得线性表的长度,即线性表中所含数据元素的个数。  
    PriorElem( L, cur_e, &pre_e )
   初始条件:线性表 L 已存在。
   操作结果:若 cur_e 是 L 中的数据元素,则用 pre_e 返回它的前驱
        否则操作失败,pre_e 无定义。
 
    若 cur_e 是线性表 L 中第一个数据元素,则它的前驱 pre_e 为"空元素"。  
    NextElem( L, cur_e, &next_e )
   初始条件:线性表 L 已存在。
   操作结果:若 cur_e 是 L 中的数据元素,则用 next_e 返回它的后继,
        否则操作失败,next_e 无定义。
 
    若 cur_e 是线性表 L 中最后一个数据元素,则它的后继 next_e 为"空元素"。  
    GetElem( L, i, &e )
   初始条件:线性表 L 已存在,1≤i≤LengthList(L)
   操作结果:用 e 返回 L 中第 i 个元素的值。
 
    此操作的结果是求得线性表 L 中和位序 i 相对应的数据元素,因此,只有当 i 的值在线性表的长度范围内才有意义。  
    LocateElem( L, e, compare( ) )
   初始条件:线性表 L 已存在,compare( ) 是元素判定函数。
   操作结果:返回 L 中第1个与 e 满足关系 compare( ) 的元素的位序
        若这样的元素不存在,则返回值为0。
    这是和上一个操作"相对"的操作,通常称为"定位函数",这是一种广义的定位函数写法,以请参阅C语言程序设计的教材中有关"以函数作参数"的说明。 compare() 作为判定的条件,参数 e 和线性表中数据元素具有相同类型。较多场合是以"相等"作为判定条件,此时可省略函数参数,且操作结果为:若线性表中存在与 e 值相同的数据元素,则返回第一个这样的元素在表中的位序,否则返回函数值为0。
 
 
    ListTraverse(L, visit( ))
  初始条件:线性表 L 已存在,visit( ) 为元素的访问函数。
  操作结果:依次对 L 的每个元素调用函数 visit( )
       一旦 visit( ) 失败,则操作失败。
    visit() 亦为函数参数,常见的情况是"依次输出表中元素的值",同样在这种情况下,通常的写法也是省略函数参数。