1、创建顺序表
2、初始化顺序表
3、构建逻辑
宏定义和头文件:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define ElemType int
#define Status int
存储结构:
typedef struct{
ElemType *elem;
int Length;
int ListSize;
}SqList;
函数:Status DeleteSq(SqList &L,int Location,ElemType &Elem)
Location:要删除元素的位置
Elem:用于返回被删除元素的值
首先判断Location是否合法,不合法return -1;
令Location-1处的值给Elem
删除:即后面的往前移动,Length-1
代码:
Status DeleteSq(SqList &L,int Location,ElemType &Elem)
if (Location<0 || Location>L.Length) { return -1; }
Elem = L.elem[Location-1];
int j;
int i = Location - 1;
for (j = 1;j<= L.Length - Location;j++)//当前i为当前要删除元素的位置,从i开始后面的一个一个覆盖前面的
{
L.elem[i] = L.elem[i+1]; //把后面的给前面的
i++;
}
L.Length -= 1;//更新Length
return 1;
}
移动的次数为:Location-Length