记录数据结构队列学习过程(手写deque)
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
template <typename T> struct DequeNode {
T data;
DequeNode* prev;
DequeNode* next;
DequeNode() {
};
DequeNode(T e, DequeNode p = NULL, DequeNode q = NULL) :data(e), prev(p), next(q) {
}//默认构造(方便赋值)
};
template <typename T> class Deque_Link {
private:
DequeNode<T>* head;
DequeNode<T>* tail;
int _size;
void Init();
public:
Deque_Link() {
Init(); };
~Deque_Link();
T& operator [] (int ) const; //重载[]运算符
int size()const {
return _size; }; //返回大小
bool empty()const {
return _size <= 0; }; //判断是否为空
void push_back(const T&);
void push_front(const T&);
void pop_front();
void pop_back();
void clear();
T erase(DequeNode<T>* p);