线性表中将被删除的元素值赋给e的代码
时间: 2024-09-19 15:09:26 浏览: 1
在线性表(如数组、链表等)中,删除一个元素通常涉及到移除该元素并调整后续元素的顺序。如果要在删除操作后保留被删除元素的值,你可以创建一个新的变量`e`来存储它。这里是一个简单的示例,假设我们有一个整数数组:
```python
# 对于数组
def delete_and_store(arr, index):
if index < 0 or index >= len(arr): # 检查索引是否有效
return None # 如果无效,则返回None
# 保存被删除的元素
e = arr[index]
# 移除元素
del arr[index]
return e
# 示例
my_list = [1, 2, 3, 4, 5]
deleted_value = delete_and_store(my_list, 2) # 删除索引为2的元素(值为3)
print(deleted_value) # 输出:3
```
对于链表(特别是单向链表),操作会稍微复杂些,因为需要更新指针:
```c++
// 对于单向链表
struct Node {
int data;
Node* next;
};
Node* delete_and_store(Node** head, int index) {
if (index < 0 || *head == nullptr || (*head)->next == nullptr && index == 0) { // 链表为空或到达末尾
return nullptr; // 返回nullptr
}
Node* current = *head;
Node* temp = nullptr;
if (index == 0) { // 删除头节点
temp = current->next;
delete current;
*head = temp;
return temp ? temp->data : nullptr;
}
for (int i = 0; i < index - 1; ++i) {
if (current->next == nullptr) { // 到达链表末尾,无法访问到指定位置
break;
}
current = current->next;
}
if (current == nullptr) { // 指定位置不存在
return nullptr;
}
temp = current->next;
current->next = current->next->next;
e = current->data; // 存储被删除的值
delete temp; // 释放内存
return e;
}
```