用c++对已建立的单向链表进行插入、删除、查找等基本操作,并用多组数据进行测试
时间: 2024-10-20 19:09:37 浏览: 18
c++双向链表操作示例(创建双向链、双向链表中查找数据、插入数据等)
在C++中,对于单向链表的基本操作包括插入、删除和查找,以下是简要的步骤:
1. 插入节点:首先创建一个新节点并分配内存,然后将其指针指向当前的头节点,如果链表为空,则直接设置头节点为新节点。
```cpp
struct Node {
int data;
Node* next;
};
void insertNode(Node*& head, int value) {
Node* newNode = new Node();
newNode->data = value;
newNode->next = head;
head = newNode;
}
```
2. 删除节点:需要找到待删除节点的前一个节点,然后将前一个节点的`next`指针指向待删除节点的下一个节点。
```cpp
void deleteNode(Node*& head, int value) {
if (head == nullptr) return; // 如果链表为空
if (head->data == value) { // 如果头节点就是要删除的
Node* temp = head;
head = head->next;
delete temp;
return;
}
Node* prev = head;
while (prev->next != nullptr && prev->next->data != value) {
prev = prev->next;
}
if (prev->next != nullptr) { // 找到并删除目标节点
Node* temp = prev->next;
prev->next = prev->next->next;
delete temp;
}
}
```
3. 查找节点:遍历链表直到找到指定值,或者遍历结束返回`nullptr`表示未找到。
```cpp
Node* searchNode(Node* head, int value) {
Node* current = head;
while (current != nullptr) {
if (current->data == value)
return current;
current = current->next;
}
return nullptr;
}
```
为了验证这些操作,你可以创建多组不同的数据,比如整数数组,然后创建对应的链表实例,依次进行插入、删除和查找操作,检查结果是否正确。
阅读全文