数据结构顺序表的插入C语言代码
时间: 2023-07-27 19:10:33 浏览: 147
顺序表的插入操作可以分为两种情况:
1. 在表中间插入元素,需要移动插入位置后面的元素;
2. 在表尾插入元素,直接将元素插入到表尾。
下面是一个基于数组实现的顺序表的插入操作的 C 语言代码示例:
```c
#include <stdio.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
// 在顺序表 L 中第 i 个位置插入元素 e
int ListInsert(SqList *L, int i, int e) {
int j;
// 判断插入位置是否合法
if (i < 1 || i > L->length + 1) {
return 0;
}
// 判断顺序表是否已满
if (L->length == MAXSIZE) {
return 0;
}
// 将插入位置后面的元素向后移动一位
for (j = L->length; j >= i; j--) {
L->data[j] = L->data[j-1];
}
// 在插入位置插入元素 e
L->data[i-1] = e;
L->length++;
return 1;
}
int main() {
SqList L;
int i;
// 初始化顺序表
for (i = 0; i < 5; i++) {
L.data[i] = i+1;
}
L.length = 5;
// 输出原始顺序表
printf("原始顺序表:");
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
// 在第 3 个位置插入元素 6
ListInsert(&L, 3, 6);
// 输出插入后的顺序表
printf("插入后的顺序表:");
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
return 0;
}
```
上述代码在顺序表 L 的第 i 个位置插入元素 e,如果插入位置不合法或者顺序表已满,则返回 0;否则返回 1,并将顺序表的长度加一。
阅读全文
相关推荐

















