首先判断顺序表是否为空,为空直接返回。如果顺序表不为空再遍历找到元素并删除。

    1. //删除第一次出现的关键字key
    2. public void remove(int toRemove) {
    3. if (isEmpty()) {
    4. System.out.println("顺序表为空!");
    5. return;
    6. }
    7. for (int i = 0; i < this.size; i++) {
    8. if (this.elem[i] == toRemove) {
    9. for (int j = i; j < this.size - 1; j++) {
    10. this.elem[j] = this.elem[j+1];
    11. }
    12. this.size--;
    13. return;
    14. }
    15. }
    16. System.out.println("未找到!");
    17. }

    首先,判断顺序表示是否为空。
    然后,应用2.62_search()函数来查找要删除的元素,如果数组中没有要删除的数组,则直接结束该语句。
    最后,如果找到了要删除的元素,则利用for循环从要删除元素位置开始,到有效元素个数-1位置截止,依次将后一个元素赋值给前一个元素,最后将有效元素个数减1。
    代码示例:

    1. //删除第一次出现的关键字key
    2. public void remove(int toRemove) {
    3. if (isEmpty()){
    4. System.out.println("顺序表为空");
    5. return;
    6. }
    7. int index = search(toRemove);
    8. if (index == -1){
    9. System.out.println("没有要删除的数字");
    10. return;
    11. }
    12. for (int i = index; i < this.usedSize - 1; i++) {
    13. this.elem[i] = this.elem[i + 1];
    14. }
    15. this.usedSize--;
    16. }