用两个栈实现队列
来源:互联网 发布:数据科学 r语言实战 编辑:程序博客网 时间:2024/05/21 03:19
两个栈,一个称之为主栈,另外一个次栈。
在主栈直接进行Push操作。
次栈辅助进行Pop和Front操作。
栈直接使用STL中的Stack。
源代码:
NewQueue.h
#include <stack>class NewQueue{public:void Push(int data);void Pop();int Front();int Back();bool Empty();private:std::stack<int> m_stack1; // 主栈std::stack<int> m_stack2; // 从栈}
NewQueue.cpp
#include "NewQueue.h"void NewQueue::Push(int data){m_stack1.push(data);}void NewQueue::Pop(){// 将主栈中数据全部放入次栈while (!m_stack1.empty()){m_stack2.push(m_stack1.top());m_stack1.pop();}m_stack2.pop();// 将数据从次栈中还原到到主栈while (!m_stack2.empty()){m_stack1.push(m_stack1.top());m_stack2.pop();}}int NewQueue::Front(){// 将主栈中数据全部放入次栈while (!m_stack1.empty()){m_stack2.push(m_stack1.top());m_stack1.pop();}int data = m_stack2.top();// 将数据从次栈中还原到到主栈while (!m_stack2.empty()){m_stack1.push(m_stack2.top());m_stack2.pop();}return data;}int NewQueue::Back(){return m_stack1.top();}bool NewQueue::Empty(){return m_stack1.empty();}
0 0
- 用两个栈实现队列 & 用两个队列实现栈
- 用两个队列实现栈&用两个栈实现队列
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现队列 & 两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- hdu 5455 Fang Fang(水题)
- poj 2752 Seek the Name, Seek the Fame
- 一元回归分析r语言代码
- Python正则表达式实例演练
- Linux系统调用和库函数调用
- 用两个栈实现队列
- TFT液晶屏使用自建的英文字库
- Linux 内核态与用户态
- UITableView上下滚动卡顿(获取网络数据,下载图片之后)
- SDUT 1519 数据结构实验之链表八:Farey序列
- 多元回归分析r语言代码
- HDU 4974 A simple water problem
- gym 100430 G【贪心+map瞎搞】
- Android 5.1 Contacts源码分析(三):Contacts模块Fargment结构