单链表基本操作devc++
时间: 2024-09-20 14:10:42 浏览: 37
单链表是一种线性的数据结构,其中每个节点包含数据和指向下一个节点的指针。在Dev-C++中,你可以通过以下几个步骤来实现单链表的基本操作:
1. **创建节点**:
- 定义一个`Node`类,包含数据成员如int `data`和指向下一个节点的指针`next`。
```cpp
struct Node {
int data;
Node* next;
};
```
2. **初始化列表**:
- 可以创建一个空链表或动态添加节点到链表的开头或结尾。
```cpp
// 创建空链表
Node* head = nullptr;
// 添加新节点到链表头部
Node* newNode = new Node();
newNode->data = value;
newNode->next = head;
head = newNode;
```
3. **遍历链表**:
- 使用`while`循环逐个访问节点。
```cpp
void printList(Node* node) {
while (node != nullptr) {
cout << node->data << " ";
node = node->next;
}
}
```
4. **插入和删除节点**:
- 插入节点可以指定位置,删除某个特定节点或头结点等。
```cpp
// 在给定位置插入节点
void insertAtPosition(Node*& head, int position, int value) {
if (position < 0 || !head) return; // 检查边界条件
Node* newNode = new Node();
newNode->data = value;
newNode->next = nullptr;
if (position == 0) {
newNode->next = head;
head = newNode;
return;
}
Node* temp = head;
for (int i = 0; temp && i < position - 1; ++i) {
temp = temp->next;
}
if (temp)
newNode->next = temp->next;
temp->next = newNode;
}
// 删除节点
void deleteNode(Node*& head, int key) {
if (!head) return;
if (head->data == key) {
Node* temp = head;
head = head->next;
delete temp;
return;
}
Node* current = head;
while (current->next && current->next->data != key) {
current = current->next;
}
if (current->next) {
Node* toDelete = current->next;
current->next = toDelete->next;
delete toDelete;
}
}
```
阅读全文