什么是C++中的单向链表以及其基本操作和结构?
时间: 2024-11-03 21:24:10 浏览: 25
在C++中,单向链表是一种线性数据结构,每个节点包含两个部分:存储数据域和指向下一个节点的指针。这种链表的特点是每个节点只知道自己前一个节点的位置,而不知道后面节点的信息,因此被称为单向链表。
基本操作包括:
1. **创建节点**:定义一个节点类,通常包含一个数据成员用于存储值,以及一个指向下一个节点的指针。
```cpp
struct Node {
int data;
Node* next; // 指向前一个节点
};
```
2. **初始化链表**:可以为空链表,也可以通过头节点逐渐添加元素。
```cpp
Node* head = nullptr; // 空链表
```
3. **插入元素**:可以在链表头部、尾部或特定位置插入新节点。
```cpp
void insertAtBeginning(Node*& head, int value) {
Node* newNode = new Node{value, head};
head = newNode;
}
```
4. **删除节点**:需要找到要删除的节点并更新相邻节点的指针。
```cpp
void deleteNode(Node*& head, int value) {
if (head && head->data == value) {
Node* temp = head;
head = head->next;
delete temp;
} else {
Node* current = head;
while (current && current->data != value) {
current = current->next;
}
if (current)
current->next = current->next->next;
}
}
```
5. **遍历链表**:从头节点开始,依次访问每个节点直到链表结束。
```cpp
void printList(Node* head) {
Node* current = head;
while (current) {
std::cout << current->data << " ";
current = current->next;
}
}
```
阅读全文