如何在C++中实现一个简单的单向链表,并在其中插入和删除元素?


在C++中,实现一个简单的单向链表需要定义一个节点结构体,以及包含插入和删除方法的链表类。以下是一个简单的实现:

```cpp
#include

// 定义节点结构体
struct Node {
int data;
Node* next;
Node(int val) : data(val), next(nullptr) {}
};

// 定义链表类
class SinglyLinkedList {
public:
SinglyLinkedList() : head(nullptr) {}

// 插入节点到链表末尾
void insert(int data) {
Node* newNode = new Node(data);
if (head == nullptr) {
head = newNode;
} else {
Node* temp = head;
while (temp->next != nullptr) {
temp = temp->next;
}
temp->next = newNode;
}
}

// 删除指定值的节点
bool remove(int data) {
if (head == nullptr) return false;

if (head->data == data) {
Node* temp = head;
head = head->next;
delete temp;
return true;
}

Node* current = head;
Node* previous = nullptr;

while (current != nullptr && current->data != data) {
previous = current;
current = current->next;
}

if (current == nullptr) return false;

previous->next = current->next;
delete current;
return true;
}

// 打印链表中的所有元素
void display() {
Node* temp = head;
while (temp != nullptr) {
std::cout << temp->data << " -> ";
temp = temp->next;
}
std::cout << "nullptr" << std::endl;
}

private:
Node* head;
};

int main() {
SinglyLinkedList list;
list.insert(10);
list.insert(20);
list.insert(30);
list.display();

list.remove(20);
list.display();

return 0;
}
```

这个示例程序实现了一个简单的单向链表。首先定义了节点结构体`Node`,存储了数据和指向下一个节点的指针。链表类`SinglyLinkedList`提供了插入、删除和显示链表元素的方法。在`main`函数中,我们创建一个链表对象并进行插入、删除和显示操作。

若文章对您有帮助,帮忙点个赞!

0
0
发布时间 2025-03-13 10:42:22
0 条回复(回复会通过微信通知作者)
点击加载更多评论
登录 后再进行评论
(微信扫码即可登录,无需注册)