用算法实现:(1)将一个顺序表中从第i个结点开始的k节点删除

来源:百度知道 编辑:UC知道 时间:2024/04/30 11:53:50
用算法实现:(1)将一个顺序表中从第i个结点开始的k节点删除

#define LIST_INIT_SIZE 80
// 线性表存储空间的初始分配量
#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