您的位置:首页 > 理论基础 > 数据结构算法

数据结构练习(16)用两个栈实现队列

2012-12-12 22:43 267 查看
http://zhedahht.blog.163.com/blog/static/2541117420073293950662/

#include <stack>
#include <cassert>
using namespace std;

template <typename T> class CQueue
{
public:
CQueue() {}
~CQueue() {}

void append_tail(const T& element);
void delete_head();

private:
stack<T> m_stack1;
stack<T> m_stack2;
};

template <typename T> void CQueue<T>::append_tail(const T& element)
{
m_stack1.push(element);
}

template <typename T> void CQueue<T>::delete_head()
{
if (m_stack2.size() <= 0)
{
while (m_stack1.size())
{
m_stack2.push(m_stack1.top());
m_stack1.pop();
}
}
assert(m_stack2.size() > 0);
m_stack2.pop();
}

int main()
{
CQueue<int> q;
q.append_tail(10);
q.delete_head();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: