单链表的基本操作c++
时间: 2023-08-10 21:06:01 浏览: 80
单链表基本操作(C++代码).pdf
5星 · 资源好评率100%
单链表是一种常见的线性数据结构,它由一系列节点构成,每个节点包含一个数据元素和一个指向下一个节点的指针。下面是单链表的基本操作示例代码(使用C++语言实现):
```c++
#include <iostream>
using namespace std;
// 定义节点结构体
struct Node {
int data;
Node* next;
};
// 初始化链表(创建头结点)
Node* initList() {
Node* head = new Node;
head->next = NULL;
return head;
}
// 插入节点(在第pos个节点后面插入一个新节点)
bool insertNode(Node* head, int pos, int val) {
Node* p = head;
int i = 0;
while (p && i < pos) {
p = p->next;
i++;
}
if (!p || i > pos) {
return false;
}
Node* newNode = new Node;
newNode->data = val;
newNode->next = p->next;
p->next = newNode;
return true;
}
// 删除节点(删除第pos个节点)
bool deleteNode(Node* head, int pos) {
Node* p = head;
int i = 0;
while (p->next && i < pos - 1) {
p = p->next;
i++;
}
if (!p->next || i > pos - 1) {
return false;
}
Node* q = p->next;
p->next = q->next;
delete q;
return true;
}
// 遍历链表
void traverseList(Node* head) {
Node* p = head->next;
while (p) {
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
// 清空链表
void clearList(Node* head) {
Node* p = head->next;
while (p) {
Node* q = p;
p = p->next;
delete q;
}
head->next = NULL;
}
int main() {
Node* head = initList();
// 在第3个节点后插入值为5的新节点
insertNode(head, 3, 5);
// 删除第2个节点
deleteNode(head, 2);
// 遍历链表
traverseList(head);
// 清空链表
clearList(head);
return 0;
}
```
该示例代码包含了单链表的初始化、插入、删除、遍历和清空等基本操作,可以根据实际需要进行修改和扩展。
阅读全文