首先判断顺序表是否为空,为空直接返回。如果顺序表不为空再遍历找到元素并删除。
//删除第一次出现的关键字key
public void remove(int toRemove) {
if (isEmpty()) {
System.out.println("顺序表为空!");
return;
}
for (int i = 0; i < this.size; i++) {
if (this.elem[i] == toRemove) {
for (int j = i; j < this.size - 1; j++) {
this.elem[j] = this.elem[j+1];
}
this.size--;
return;
}
}
System.out.println("未找到!");
}
首先,判断顺序表示是否为空。
然后,应用2.62_search()函数来查找要删除的元素,如果数组中没有要删除的数组,则直接结束该语句。
最后,如果找到了要删除的元素,则利用for循环从要删除元素位置开始,到有效元素个数-1位置截止,依次将后一个元素赋值给前一个元素,最后将有效元素个数减1。
代码示例:
//删除第一次出现的关键字key
public void remove(int toRemove) {
if (isEmpty()){
System.out.println("顺序表为空");
return;
}
int index = search(toRemove);
if (index == -1){
System.out.println("没有要删除的数字");
return;
}
for (int i = index; i < this.usedSize - 1; i++) {
this.elem[i] = this.elem[i + 1];
}
this.usedSize--;
}