C++单链表的类模版定义和实现
时间: 2024-09-23 08:11:44 浏览: 79
在C++中,单链表是一种动态数据结构,可以使用类模板来创建一个通用的链表。类模板允许我们定义一个能处理不同类型元素的通用结构。以下是C++中一个简单的单链表类模板的定义和实现:
```cpp
template <typename T>
class LinkedList {
private:
struct Node {
T data;
Node* next;
Node(T value) : data(value), next(nullptr) {}
};
public:
LinkedList() : head(nullptr) {}
// 插入节点到链表头部
void push_front(const T& value) {
Node* newNode = new Node(value);
newNode->next = head;
head = newNode;
}
// 删除指定值的第一个节点
void remove(const T& 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) {
Node* temp = current->next;
delete current;
current = temp;
}
}
}
// 打印链表内容
void print() const {
Node* currentNode = head;
while (currentNode) {
std::cout << currentNode->data << " -> ";
currentNode = currentNode->next;
}
std::cout << "nullptr" << std::endl;
}
private:
Node* head; // 链表头指针
};
```
在这个例子中,`T`是一个类型参数,代表链表中的元素类型。你可以用任何类型替换`T`,如`int`, `std::string`, 或自定义的类。
阅读全文