线性表_顺序表的删除

/*
函数功能:顺序表的元素删除
函数输入:顺序表地址、删除位置、接收删除值的元素
函数输出:删除成功,返回1;删除失败,返回0
*/
#define MAXSIZE 100
typedef int ElemType;
typedef struct 
{
ElemType data[MAXSIZE];
int last;
}SeqList;
//顺序表的删除(将顺序表中下标为k的元素删除)
int Delete(SeqList *L,int k,ElemType *e)
{
int j;
if (L->last == 0) //空表
return 0;
if (k < 0 || k > L->last) //删除非法
return 0;
*e = L->data[k];
for (j = k;j <= L->last;j++)
L->data[j] = L->data[j+1];
L->last--;
return 1;
}
/*
算法思想:1.判断是否为空表
2.判断删除位置是否为合法位置
3.将要删除的元素放入e中
4.从第k+1个元素开始,将元素依次向前移动一个单位
*/

猜你喜欢

转载自www.cnblogs.com/Safe-Man/p/11945262.html