用c语言实现顺序表的删除
时间: 2023-05-27 08:07:31 浏览: 149
以下是使用c语言实现顺序表的删除的基本代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 // 定义最大容量
typedef struct {
int data[MAXSIZE]; // 存储数据元素的数组
int length; // 当前长度
} SqList; // 顺序表类型定义
// 删除操作
int deleteElem(SqList *list, int index) {
if (index < 1 || index > list->length) { // 判断删除位置是否合法
return 0;
}
int i;
for (i = index; i < list->length; i++) { // 将删除位置后面的元素依次前移
list->data[i-1] = list->data[i];
}
list->length--; // 长度减一
return 1;
}
int main() {
SqList list = {{1, 2, 3, 4, 5}, 5}; // 初始化顺序表
int i;
printf("原顺序表:");
for (i = 0; i < list.length; i++) { // 输出原顺序表
printf("%d ", list.data[i]);
}
printf("\n");
deleteElem(&list, 3); // 删除第三个元素
printf("删除后顺序表:");
for (i = 0; i < list.length; i++) { // 输出删除后的顺序表
printf("%d ", list.data[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,我们定义了一个 `SqList` 结构体类型,用于表示顺序表。其中,`data` 数组用于存储数据元素,`length` 表示当前顺序表的长度。`deleteElem` 函数用于删除指定位置的元素,它首先判断删除位置是否合法,如果合法则将删除位置后面的元素依次前移,最后将顺序表长度减一。在 `main` 函数中,我们初始化了一个顺序表,并调用 `deleteElem` 函数删除第三个元素。
阅读全文