2.2.2 顺序表中基本操作的实现

 一、初始化操作

  对顺序表而言,"初始化"的实质是为它分配一个"足够应用"的元素存储空间,由用户根据它对线性表的使用要求定义一个最大存储容量 maxsize,并约定当用户没有提出特殊需求(maxsize=0) 时,按予设的最大存储量 MAXLISTSIZE 进行分配。
 
 



  由于顺序存储结构需"一次性"地分配一个存储空间,为便于调用环境按实际需要有效利用存储空间,故在顺序表的初始化函数中增设一个"最大存储容量"的参数。
 
  算法 算法2.4
  
void InitList(SqList &L, int maxsize)
  {
   // 构造一个空的线性表 L
   if ( maxsize == 0 )
      maxsize = MAXLISTSIZE;
   L.elem = new ElemType[maxsize];
     
     if (!L.elem)  exit(1);    // 存储分配失败
   L.length = 0;         // 顺序表的初始长度为0
   L.listsize = maxsize;     // 该顺序表可以存储元素的最大容量
  } // InitList

  此算法的时间复杂度O (1)
    "存储分配失败"是由于系统资源不足造成的。
  初始化后的顺序表是一个空表,显然表长为0。