用c++实现链表的增删改查
时间: 2024-08-16 16:07:48 浏览: 72
c++实现链表增删改查
5星 · 资源好评率100%
在C++中,链表(Linked List)是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。下面是基本的链表操作:
**创建链表(插入)**:
```cpp
// 定义一个简单的链表节点
struct Node {
int data;
Node* next; // 指向下一个节点的指针
};
// 插入新节点到链表头部
void insertNode(Node*& head, int val) {
Node* newNode = new Node();
newNode->data = val;
newNode->next = head;
head = newNode;
}
```
**查找(查询)**:
```cpp
// 查找给定值的第一个匹配项
Node* search(Node* head, int val) {
while (head != nullptr && head->data != val) {
head = head->next;
}
return head;
}
```
**删除(移除)**:
```cpp
// 删除具有特定值的节点(如果存在)
void deleteNode(Node*& head, int val) {
if (head == nullptr) return;
if (head->data == val) {
Node* temp = head;
head = head->next;
delete temp;
return;
}
Node* current = head;
while (current->next != nullptr && current->next->data != val) {
current = current->next;
}
if (current->next != nullptr) {
Node* temp = current->next;
current->next = current->next->next;
delete temp;
}
}
```
**修改(更新)**:
```cpp
// 更新节点的数据
void updateNode(Node* &head, int oldVal, int newVal) {
Node *temp = head;
while(temp != nullptr){
if(temp->data == oldVal){
temp->data = newVal;
break;
}
temp = temp->next;
}
}
```
以上代码展示了如何在C++中实现链表的基本增删改查操作。请注意,这些示例假设你已经有一个指向链表头的指针。
阅读全文