用C++编写一个程序,在顺序表L中,在元素x后插入新元素e
时间: 2024-09-18 13:11:00 浏览: 41
在C++中,你可以使用双向链表(因为顺序表查找元素时间复杂度较高,不适合频繁插入操作)来实现在给定元素x之后插入新元素e的功能。这里是一个简单的示例:
```cpp
#include <iostream>
// 定义链表节点结构
struct Node {
int data;
Node* next;
Node(int val) : data(val), next(nullptr) {}
};
class LinkedList {
private:
Node* head; // 链表头指针
public:
// 插入新元素
void insertAfter(int x, int e) {
if (!head) { // 如果链表为空,直接新建第一个节点
head = new Node(e);
} else {
Node* current = head;
while (current->data != x) { // 找到元素x
current = current->next;
if (current == nullptr) { // 如果未找到x,说明x不在链表中
std::cout << "Element not found.\n";
return;
}
}
// 插入新元素
current->next = new Node(e); // 创建新节点,并设置指向下一个位置
current->next->prev = current; // 更新新节点前一个节点的指针
}
}
// 简单遍历打印链表(仅用于演示)
void printList() {
Node* temp = head;
while (temp) {
std::cout << temp->data << " ";
temp = temp->next;
}
std::cout << "\n";
}
};
int main() {
LinkedList list;
list.insertAfter(50, 70); // 假设我们要在50后插入70
list.printList(); // 输出当前链表内容
return 0;
}
```
在这个例子中,我们首先创建了一个`LinkedList`类,其中包含`Node`结构体作为节点以及`insertAfter`和`printList`方法。`insertAfter`函数会在找到元素x后添加新的节点。
阅读全文