双向链表c++的定义和输入
时间: 2024-09-28 21:15:52 浏览: 48
双向链表.cpp 双向链表类定义及测试代码 c++
双向链表是一种数据结构,其中每个节点包含两个指针,分别指向前一个节点和后一个节点。在C++中,我们可以自定义一个双向链表节点类(Doubly Linked List Node),然后定义一个双向链表类(DoublyLinkedList)。这里是一个简单的定义示例:
```cpp
// 定义双向链表节点
template <typename T>
class Node {
public:
T data;
Node<T>* prev;
Node<T>* next;
Node(T value) : data(value), prev(nullptr), next(nullptr) {}
};
// 定义双向链表类
template <typename T>
class DoublyLinkedList {
private:
Node<T>* head; // 链表头
Node<T>* tail; // 链表尾
public:
DoublyLinkedList() : head(nullptr), tail(nullptr) {}
// 插入元素到链表头部
void insertFront(T value) {
Node<T>* newNode = new Node<T>(value);
if (head == nullptr) {
head = tail = newNode;
} else {
newNode->next = head;
head->prev = newNode;
head = newNode;
}
}
// 输入操作(假设从键盘接收)
void inputList() {
std::cout << "请输入链表元素(输入'q'结束):" << std::endl;
T value;
while (std::cin >> value && value != 'q') {
insertFront(value);
}
}
// 其他链表操作...
};
```
在这个例子中,`inputList`方法用于从用户那里获取输入并插入到链表的前端。当你需要添加更多功能时,可以扩展这个类。
阅读全文