// 線性表存儲空間的初始分配量
#define LISTINCREMENT 10
typedef struct{ // 線性表存儲空間的分配增量
ElemType *elem; // 存儲空間基址
int length; // 當前長度
int listsize; // 當前分配的存儲容量
// (以sizeof(ElemType)為單位)
} SqList; // 俗稱 順序表
Status ListDelete_Sq
(SqList &L, int i, ElemType &e) {
if ((i < 1) || (i > L.length)) return ERROR;
// 刪除位置不合法
p = &(L.elem[i-1]); // p 為被刪除元素的位置
e = *p; // 被刪除元素的值賦給 e
q = L.elem+L.length-1; // 表尾元素的位置
for (++p; p <= q; ++p) *(p-1) = *p;
// 被刪除元素之後的元素左移
--L.length; // 表長減1
return OK;
} // ListDelete_Sq