c++双向链表的类定义及其相关代码,请根据双向链表的定义及程序上下文语义及注释在
时间: 2023-12-09 07:01:18 浏览: 73
双向链表用c++描述
双向链表是一种线性数据结构,它包含多个节点,每个节点中除了存储数据之外,还包含指向前一个节点和后一个节点的指针。
以下是一个双向链表的类定义及相关代码示例:
```cpp
#include <iostream>
template <class T>
class Node {
public:
T data;
Node* prev;
Node* next;
};
template <class T>
class DoublyLinkedList {
private:
Node<T>* head;
Node<T>* tail;
public:
DoublyLinkedList() {
head = nullptr;
tail = nullptr;
}
void insertNode(T data) {
Node<T>* newNode = new Node<T>();
newNode->data = data;
newNode->prev = nullptr;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
newNode->prev = tail;
tail = newNode;
}
}
void displayList() {
Node<T>* temp = head;
while (temp != nullptr) {
std::cout << temp->data << " ";
temp = temp->next;
}
std::cout << std::endl;
}
};
int main() {
DoublyLinkedList<int> list;
list.insertNode(1);
list.insertNode(2);
list.insertNode(3);
list.displayList();
return 0;
}
```
在上面的代码中,我们首先定义了一个节点类(Node),它包含数据和两个指针指向前一个节点和后一个节点。然后定义了一个双向链表类(DoublyLinkedList),其中包含了头指针和尾指针,以及插入节点和显示链表的两个方法。在主函数中,我们创建了一个双向链表对象,插入了三个节点,并显示了链表中的数据。
阅读全文