用C++模板类语言构造一个双向链表
时间: 2023-05-11 10:04:37 浏览: 70
好的,以下是一个用C++模板类语言构造的双向链表的代码示例:
```c++
template <typename T>
class Node {
public:
T data;
Node<T>* prev;
Node<T>* next;
Node(T data) {
this->data = data;
prev = nullptr;
next = nullptr;
}
};
template <typename T>
class DoublyLinkedList {
private:
Node<T>* head;
Node<T>* tail;
public:
DoublyLinkedList() {
head = nullptr;
tail = nullptr;
}
void add(T data) {
Node<T>* node = new Node<T>(data);
if (head == nullptr) {
head = node;
tail = node;
} else {
tail->next = node;
node->prev = tail;
tail = node;
}
}
void remove(T data) {
Node<T>* node = head;
while (node != nullptr) {
if (node->data == data) {
if (node == head) {
head = node->next;
}
if (node == tail) {
tail = node->prev;
}
if (node->prev != nullptr) {
node->prev->next = node->next;
}
if (node->next != nullptr) {
node->next->prev = node->prev;
}
delete node;
break;
}
node = node->next;
}
}
};
```
希望这个代码示例能够帮助你构造一个双向链表。