LinearList * Delete_List (LinearList * L,int i, elemtype * e)
时间: 2024-09-10 09:25:48 浏览: 33
xianxingbiao.zip_L.E.L
`Delete_List` 函数用于从给定线性表 `L` 中删除第 `i` 个元素,并将该元素的值存储到指针 `e` 所指向的位置。这里 `elemtype` 是线性表中元素的数据类型。这是一个简化的伪代码描述:
```c
// 假设 LinearList 结构包含一个头节点 head 和一个长度 length
LinearList *Delete_List(LinearList *L, int i, elemtype *e) {
if (i < 0 || i >= L->length) { // 检查索引是否越界
return L; // 如果索引无效,直接返回原链表
}
// 处理头节点的情况(如果 i=0)
if (i == 0) {
*e = L->head->data;
LinearList *temp = L->head;
L->head = L->head->next;
free(temp); // 释放头节点
} else {
// 递归地处理剩余的元素
LinearList *prev = L->head;
while (prev->next && prev->next->index != i - 1) {
prev = prev->next;
}
if (!prev->next) {
return L; // 如果找不到对应位置,说明越界
}
*e = prev->next->data;
prev->next = prev->next->next;
}
return L;
}
```
这个函数会更新链表并返回新的链表头部。如果成功删除了元素,`e` 将包含被删除元素的值。
阅读全文