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。 |