前言:
栈是什么,怎么用实现一个栈,可以看详解栈和队列的实现以及它们的相互实现这篇文章来用C语言实现一个栈(stack)和队列(queue)。
下面实现stack和queue要使用一个容器deque,可以看 来了解deque。
stack的实现(C++)
用容器deque来创建一个对象C,然后利用对象C里面的接口来实现stack的接口。
template<class T, class Con = deque<T>>
class stack
{
public:void push(const T& x){_c.push_back(x);}void pop(){_c.pop_back();}T& top(){return _c.back();}const T& top()const{_c.front();}size_t size()const{return _c.size();}bool empty()const{return _c.empty();}private:Con _c;
};
queue的实现
template<class T, class Con = deque<T>>class queue
{
public:void push(const T& x){_c.push_back(x);}void pop(){_c.pop_front();}T& back(){return _c.back();}const T& back()const{return _c.back();}T& front(){return _c.front();}const T& front()const{return _c.front();}size_t size()const{return _c.size();}bool empty()const{return _c.empty();}private:Con _c;
};