顺序表的插入操作数据结构c语言实现
时间: 2023-10-03 08:07:25 浏览: 106
顺序表的插入操作通常包括以下几个步骤:
1. 判断插入位置是否合法,即插入位置的下标是否在顺序表的范围内;
2. 如果插入位置不在顺序表的末尾,则需要将插入位置及其后面的元素依次向后移动一位,为新元素腾出位置;
3. 将新元素插入到顺序表的指定位置。
以下是一个简单的顺序表插入操作的 C 语言实现:
```c
#include <stdio.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 存储元素的数组
int length; // 当前顺序表的长度
} SeqList;
// 在顺序表中插入元素 x 到下标为 i 的位置
int insert(SeqList *L, int i, int x) {
if (i < 1 || i > L->length+1 || L->length == MAXSIZE) { // 判断插入位置是否合法
return 0; // 插入失败
}
for (int j = L->length; j >= i; j--) { // 将插入位置及其后面的元素依次向后移动一位
L->data[j] = L->data[j-1];
}
L->data[i-1] = x; // 将新元素插入到顺序表的指定位置
L->length++; // 更新顺序表的长度
return 1; // 插入成功
}
int main() {
SeqList L = {{1, 3, 5, 7, 9}, 5}; // 初始化一个顺序表
int i = 3, x = 4; // 要在下标为 3 的位置插入元素 4
if (insert(&L, i, x)) { // 插入成功
printf("Insert %d at position %d success!\n", x, i);
for (int j = 0; j < L.length; j++) {
printf("%d ", L.data[j]); // 输出插入后的顺序表
}
printf("\n");
} else { // 插入失败
printf("Insert %d at position %d failed!\n", x, i);
}
return 0;
}
```
运行结果为:
```
Insert 4 at position 3 success!
1 3 4 5 7 9
```
阅读全文