线性表的插入C语言描述
时间: 2023-11-23 16:58:36 浏览: 69
线性表的顺序表示和插入、删除、归并C语言代码实现
4星 · 用户满意度95%
假设线性表已经定义,包含以下数据类型和方法:
```c
typedef struct {
int* data; // 指向动态分配的数组
int length; // 当前线性表长度
int size; // 数组容量
} List;
// 在线性表第i个位置插入元素e,插入成功返回1,插入失败返回0
int insert(List* list, int i, int e);
```
插入操作的实现方式有多种,以下是一种简单的实现方式:
```c
int insert(List* list, int i, int e) {
if (i < 1 || i > list->length + 1 || list->length == list->size) {
return 0; // i的范围不合法或线性表已满,插入失败
}
for (int j = list->length; j >= i; j--) {
list->data[j] = list->data[j - 1]; // 将第i个位置及其后面的元素后移一位
}
list->data[i - 1] = e; // 将元素e插入第i个位置
list->length++; // 线性表长度加1
return 1; // 插入成功
}
```
使用示例:
```c
List list;
init(&list, 10); // 初始化线性表,容量为10
insert(&list, 1, 10); // 在第1个位置插入元素10
insert(&list, 2, 20); // 在第2个位置插入元素20
insert(&list, 1, 30); // 在第1个位置插入元素30
```
执行完上述代码后,线性表中的元素为30、10、20,长度为3。
阅读全文