使用双链表实现双端队列
采用链表实现队列的好处是较为节省空间,便于增删元素。但是难于遍历。
双端队列是在队列两端都可以进行出队、入队操作的队列。
下面是双链表实现双端队列的代码。
deque.h
#pragma once
//双端队列的链式存储C++实现
//2020.01.21
//记录:可运行,插入删除操作没有问题,但是没有写自定义的插入删除操作,待后续可完成
#include <iostream>
using namespace std;
template<typename T>
class Node {
private:
T element;
Node<T>* pre_node;
Node<T>* next_node;
public:
Node(); //构造函数
Node(T e); //构造函数重载
T retrieve(); //获取结点数据
Node<T>* pre(); //获取前指针
void setpre(Node<T>* node); //设置前指针
Node<T>* next();//获取后指针
void setnext(Node<T>* node); //设置后指针
template<class Type>
friend class Deque;
};
template<typename T>
inline Node<T>::Node() {
element = 0;
pre_node = NULL;
next_node = NULL;
}
template<typename T>
inline Node<T>::Node(T e) {
element = e;
pre_node = NULL;
next_node = NULL;
}
template<typename T>
inline T Node<T>::retrieve() {
return element;
}
template<typename T>
inline Node<T>* Node<T>::pre() {