C语言顺序表的插入删除
时间: 2024-03-14 22:22:49 浏览: 55
053 顺序表插入和删除 C语言
5星 · 资源好评率100%
顺序表是一种线性数据结构,可以使用数组实现。在C语言中,可以使用数组来表示顺序表。在顺序表中,元素是按照一定的顺序排列的,可以通过下标来访问元素。
插入操作
在顺序表中插入元素,需要将插入位置后面的元素依次向后移动一位,然后将要插入的元素放入插入位置。
示例代码:
```c
#define MAXSIZE 100 // 定义顺序表的最大容量
typedef struct {
int data[MAXSIZE]; // 存储元素的数组
int length; // 当前顺序表中的元素个数
} SqList;
// 在顺序表L的第i个位置插入元素e
int ListInsert(SqList *L, int i, int e) {
if (i < 1 || i > L->length + 1) { // 插入位置不合法
return 0;
}
if (L->length >= MAXSIZE) { // 顺序表已满
return 0;
}
for (int j = L->length; j >= i; j--) { // 将插入位置后面的元素依次向后移动一位
L->data[j] = L->data[j - 1];
}
L->data[i - 1] = e; // 将要插入的元素放入插入位置
L->length++; // 顺序表长度加1
return 1;
}
```
删除操作
在顺序表中删除元素,需要将删除位置后面的元素依次向前移动一位,然后将最后一个元素删除。
示例代码:
```c
#define MAXSIZE 100 // 定义顺序表的最大容量
typedef struct {
int data[MAXSIZE]; // 存储元素的数组
int length; // 当前顺序表中的元素个数
} SqList;
// 在顺序表L中删除第i个位置的元素,并将删除的元素存储到e中
int ListDelete(SqList *L, int i, int *e) {
if (i < 1 || i > L->length) { // 删除位置不合法
return 0;
}
*e = L->data[i - 1]; // 将删除的元素存储到e中
for (int j = i; j < L->length; j++) { // 将删除位置后面的元素依次向前移动一位
L->data[j - 1] = L->data[j];
}
L->length--; // 顺序表长度减1
return 1;
}
```
阅读全文