1.使用STL中的deque实现栈和队列
在STL中,stack和queue都是在deque的基础上实现的,就是限制了数据输入输出的方向,栈是都在头部执行操作,队列是输入数据在尾部,输出数据在头部
2.stack的实现
template<typename T>
class m_stack
{
public:
void push(T n)//压栈
{
_deque.push_front(n);
}
void pop()//退栈
{
_deque.pop_front();
}
T& top()//得到栈顶元素
{
return _deque.front();
}
bool empty()//判断是否为空
{
return _deque.empty();
}
size_t size()
{
return _deque.size();
}
private:
deque<T> _deque;
};
3.队列的实现
template<typename T>
class m_queue
{
public:
void push(T n)//进队列
{
_deque.push_back(n);
}
void pop()//出队列
{
_deque.pop_front();
}
T& front()//得到最前面的值
{
return _deque.front();
}
T& back()//得到最后面的值,也是最先压入的值
{
return _deque.back();
}
bool empty()//判断是否为空
{
return _deque.empty();
}
size_t size()
{
return _deque.size();
}
private:
deque<T> _deque;
};
是不是看上去很简单啊?哈哈