顺序表的插入和删除代码
时间: 2024-10-11 19:09:23 浏览: 9
顺序表是一种线性数据结构,它通过连续的内存空间存储元素。在顺序表中插入和删除操作通常比较简单,但由于需要移动其他元素来保持连续性,其效率相对较低。
**插入操作(例如在列表末尾插入):**
```c++
template <typename T>
void Insert(SequenceList<T>& list, const T& value) {
if (list.isEmpty()) { // 如果为空
list.head = new Node(value); // 创建新节点作为头结点
} else {
Node* newNode = new Node(value); // 新节点
Node* current = list.head;
while (current->next != nullptr) { // 遍历到末尾
current = current->next;
}
current->next = newNode; // 插入到末尾
}
list.length++; // 更新长度
}
```
**删除操作(例如删除第一个元素):**
```c++
template <typename T>
void Delete(SequenceList<T>& list, int index) {
if (index >= 0 && index < list.length) { // 确保索引有效
if (index == 0) { // 删除头部
list.head = list.head->next;
delete list.head; // 删除已不再需要的头节点
} else {
Node* current = list.head;
for (int i = 0; i < index - 1; ++i) {
current = current->next;
}
Node* nextNode = current->next;
current->next = nextNode->next; // 跳过要删除的节点
delete nextNode; // 删除当前节点
}
list.length--; // 减少长度
}
}
```