方法一:
记录非item值的元素,利用原表空间记录下来
void DeleteItem(SqList &La,ElemType item){
int count=o; //记录值不为item的元素
for(int i=0;i<La.length;i++){
if(La.Elem[i]!=item){ //查找值不为item的元素
La.Elem[count]=La.Elem[i]; //利用原表的空间记录值不为item的元素
count++;
}
La.length=count; //顺序表的长度等于count
}
方法二:
随时记录item的元素个数(空位),碰见非item元素时向前移动
void DeleteItem(SqList &La,ElemType item){
int count=0;
for(int i=0;i<La.length;i++){
if(L.date[i]==item){ //需要删除的元素
count++; //表示有几个空位
}
else{
La.date[i-count]=La.date[i]; //向前移动count个空位
}
}
La.length=L.length-count; //删除了count个元素
}