C语言数据结构顺序表建立插入删除
时间: 2024-10-10 17:07:56 浏览: 48
在C语言中,顺序表是一种简单的基础数据结构,它通过数组的形式存储元素。以下是顺序表的基本操作——插入和删除:
1. **插入操作**:
- 初始化:首先,你需要创建一个数组作为顺序表,并分配足够的空间来容纳元素。
- 插入位置:确定你想插入元素的位置,通常分为在表头、表尾或指定位置插入。
- 实现过程:
- 如果要插入到头部,将新元素复制到第一个元素的位置,然后所有其他元素向右移动一位。
- 如果要插入到尾部,只需在数组的末尾添加新元素即可。
- 如果要插入到指定位置(索引i),需要先移动从i到结尾的所有元素,然后将新元素放在位置i。
2. **删除操作**:
- 删除操作一般涉及到元素的具体引用,因为数组本身是连续存储的。
- 确定待删除元素的位置。
- 删除操作:
- 如果要删除的是头部元素,直接将第二个元素移到第一个位置,然后更新头指针。
- 如果要删除的是尾部元素,只需调整最后一个元素前的元素,使其覆盖掉已删除的元素。
- 如果要删除中间位置的元素,需要找到该位置后的一个元素,将其值复制到待删除元素的位置,然后将后一个元素的指针减一。
```c
// 示例代码片段(仅作参考,实际实现需考虑边界条件和错误处理)
typedef struct {
int* data;
int size;
int capacity;
} List;
void list_push(List* lst, int value) {
if(lst->size == lst->capacity) { // 扩容
lst->capacity *= 2;
lst->data = (int*)realloc(lst->data, lst->capacity * sizeof(int));
}
lst->data[lst->size++] = value;
}
void list_remove(List* lst, int index) {
if(index < 0 || index >= lst->size) return; // 检查索引合法性
for(int i = index; i < lst->size - 1; i++) {
lst->data[i] = lst->data[i + 1];
}
lst->size--;
}
```
阅读全文