设计由两个栈组成的队列
2015-09-21 20:05
246 查看
//设计由两个栈组成的队列
//编写一个类,用两个栈实现队列,支持队列基本操作
//需要注意的是在是实现时TailSt不空时,不能对它Push操作,
#include <stack>
class myQueue
{
void Push(int x)
{
FrontSt.push(x);
}
int Top()
{
if (!TailSt.empty())
return TailSt.top();
else
{
while (!FrontSt.empty())
{
TailSt.push(FrontSt.top());
FrontSt.pop();
}
return TailSt.top();
}
}
void Pop()
{
if (TailSt.empty() && FrontSt.empty())
return;
if (TailSt.empty() && !FrontSt.empty())
{
while (!FrontSt.empty())
{
TailSt.push(FrontSt.top());
FrontSt.pop();
}
}
TailSt.pop();
}
private:
stack<int> FrontSt; //用于队尾
stack<int> TailSt; //用于队头
};
//编写一个类,用两个栈实现队列,支持队列基本操作
//需要注意的是在是实现时TailSt不空时,不能对它Push操作,
#include <stack>
class myQueue
{
void Push(int x)
{
FrontSt.push(x);
}
int Top()
{
if (!TailSt.empty())
return TailSt.top();
else
{
while (!FrontSt.empty())
{
TailSt.push(FrontSt.top());
FrontSt.pop();
}
return TailSt.top();
}
}
void Pop()
{
if (TailSt.empty() && FrontSt.empty())
return;
if (TailSt.empty() && !FrontSt.empty())
{
while (!FrontSt.empty())
{
TailSt.push(FrontSt.top());
FrontSt.pop();
}
}
TailSt.pop();
}
private:
stack<int> FrontSt; //用于队尾
stack<int> TailSt; //用于队头
};
相关文章推荐
- tomcat安装与配置,Eclipse集成与配置,首个程序发布
- LintCode--买卖股票的最佳时机 II
- 本地存储小案例
- 面试笔试题记录
- 几种常用数据库的JDBC URL
- MVC导出
- 消除 Xcode7 中 directory not found for option 'xxxx' 警告
- 对于一个液晶而言什么是读状态、读数据、写指令、写数据
- Networking - ARP 协议
- 使用C++11
- doPost()和doGet()
- UITabelViewCell的数据混叠显示
- sublime text3 汉化界面上的中文显示乱码
- 金源盛世新品发布会 - 茂名市天一文化传媒
- Longest Substring Without Repeating Characters
- C Prime Plus第十三章
- 关于Android基本动画的应用
- const,vector,引用的使用例子
- 原码,反码,补码
- 重造轮子-sqrt