写出顺序表的插入和删除的关键代码c语言
时间: 2023-12-10 12:42:16 浏览: 86
顺序表的插入和删除涉及到数组元素的移动,以下是关键代码示例:
顺序表插入:
```
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 用数组存储顺序表的元素
int length; // 顺序表的长度
} SqList;
// 在第i个位置插入元素e
bool ListInsert(SqList &L, int i, int e) {
if (i < 1 || i > L.length + 1) {
return false; // 插入位置不合法
}
if (L.length >= MAXSIZE) {
return false; // 顺序表已满,无法插入
}
for (int j = L.length; j >= i; j--) { // 将第i个位置及之后的元素后移
L.data[j] = L.data[j-1];
}
L.data[i-1] = e; // 将新元素插入到第i个位置
L.length++; // 顺序表长度增加1
return true;
}
```
顺序表删除:
```
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 用数组存储顺序表的元素
int length; // 顺序表的长度
} SqList;
// 删除第i个位置的元素,并用e返回其值
bool ListDelete(SqList &L, int i, int &e) {
if (i < 1 || i > L.length) {
return false; // 删除位置不合法
}
e = L.data[i-1]; // 将要删除的元素值赋给e
for (int j = i; j < L.length; j++) { // 将第i个位置之后的元素前移
L.data[j-1] = L.data[j];
}
L.length--; // 顺序表长度减少1
return true;
}
```
阅读全文