C++链表类
时间: 2023-07-10 18:18:55 浏览: 42
下面是一个简单的C++链表类的示例代码:
```cpp
#include <iostream>
using namespace std;
// 定义链表节点类
class ListNode {
public:
int val;
ListNode* next;
ListNode(int val) {
this->val = val;
this->next = NULL;
}
};
// 定义链表类
class LinkedList {
private:
ListNode* head;
public:
LinkedList() {
head = NULL;
}
// 在链表末尾插入节点
void append(int val) {
ListNode* node = new ListNode(val);
if (head == NULL) {
head = node;
} else {
ListNode* p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
}
// 在链表头部插入节点
void prepend(int val) {
ListNode* node = new ListNode(val);
node->next = head;
head = node;
}
// 删除链表中第一个值为val的节点
void remove(int val) {
if (head == NULL) {
return;
}
if (head->val == val) {
ListNode* p = head;
head = head->next;
delete p;
return;
}
ListNode* p = head->next;
ListNode* prev = head;
while (p != NULL) {
if (p->val == val) {
prev->next = p->next;
delete p;
return;
}
prev = p;
p = p->next;
}
}
// 打印链表
void print() {
ListNode* p = head;
while (p != NULL) {
cout << p->val << " ";
p = p->next;
}
cout << endl;
}
};
int main() {
LinkedList list;
list.append(1);
list.append(2);
list.append(3);
list.prepend(0);
list.print();
list.remove(2);
list.print();
return 0;
}
```
这个链表类包含了基本的插入、删除和打印链表的操作。你可以根据需要来扩展它的功能。