用c语言实现顺序表删除指定元素
时间: 2023-05-27 15:07:34 浏览: 164
以下是实现顺序表删除指定元素的C语言代码:
```
#include <stdio.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 用数组存储元素
int length; // 顺序表当前长度
} SqList;
// 初始化顺序表
void InitList(SqList *L) {
int i;
for (i = 0; i < MAXSIZE; i++) {
L->data[i] = 0; // 将所有元素初始化为0
}
L->length = 0; // 将当前长度初始化为0
}
// 向顺序表中插入元素
void InsertList(SqList *L, int x) {
if (L->length == MAXSIZE) {
printf("顺序表已满,无法插入元素!\n");
return;
}
L->data[L->length] = x;
L->length++;
}
// 删除顺序表中指定元素
void DeleteList(SqList *L, int x) {
int i, j;
for (i = 0; i < L->length; i++) {
if (L->data[i] == x) { // 找到要删除的元素
for (j = i + 1; j < L->length; j++) { // 将后面的元素向前移动
L->data[j - 1] = L->data[j];
}
L->length--; // 顺序表长度减1
i--; // 继续查找下一个要删除的元素
}
}
}
// 输出顺序表中的所有元素
void PrintList(SqList L) {
int i;
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SqList L;
int i, x;
InitList(&L);
printf("请输入要插入的元素(以-1结束输入):\n");
while (scanf("%d", &x) != EOF && x != -1) {
InsertList(&L, x);
}
printf("请输入要删除的元素:\n");
scanf("%d", &x);
DeleteList(&L, x);
printf("删除后的顺序表元素为:");
PrintList(L);
return 0;
}
```
阅读全文