leetcode代码记录 232 Implement Queue using Stacks
2016-07-04 16:47
435 查看
题目如下:
232. Implement Queue using Stacks
Implement the following operations of a queue using stacks.
push(x) -- Push element x to the back of queue.
pop() -- Removes the element from in front of queue.
peek() -- Get the front element.
empty() -- Return whether the queue is empty.
Notes:
You must use only standard operations of a stack -- which means only
and
Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).
解题思想,使用两个栈代替队列,一个进,一个出。代码如下:
class Queue {
public:
stack<int> stkin;
stack<int> stkout;
// Push element x to the back of queue.
void push(int x) {
stkin.push(x);
}
// Removes the element from in front of queue.
void pop(void) {
if(stkout.empty()) {
if(stkin.empty()) {
return ;
}
int size = stkin.size();
for(int i = 0; i < size; i++) {
stkout.push(stkin.top());
stkin.pop();
}
}
stkout.pop();
}
// Get the front element.
int peek(void) {
if(stkout.empty()) {
if(stkin.empty()) {
return 0;
}
int size = stkin.size();
for(int i = 0; i < size; i++) {
stkout.push(stkin.top());
stkin.pop();
}
}
return (stkout.top());
}
// Return whether the queue is empty.
bool empty(void) {
return(stkin.empty() && stkout.empty());
}
};
232. Implement Queue using Stacks
Implement the following operations of a queue using stacks.
push(x) -- Push element x to the back of queue.
pop() -- Removes the element from in front of queue.
peek() -- Get the front element.
empty() -- Return whether the queue is empty.
Notes:
You must use only standard operations of a stack -- which means only
push to top,
peek/pop from top,
size,
and
is emptyoperations are valid.
Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).
解题思想,使用两个栈代替队列,一个进,一个出。代码如下:
class Queue {
public:
stack<int> stkin;
stack<int> stkout;
// Push element x to the back of queue.
void push(int x) {
stkin.push(x);
}
// Removes the element from in front of queue.
void pop(void) {
if(stkout.empty()) {
if(stkin.empty()) {
return ;
}
int size = stkin.size();
for(int i = 0; i < size; i++) {
stkout.push(stkin.top());
stkin.pop();
}
}
stkout.pop();
}
// Get the front element.
int peek(void) {
if(stkout.empty()) {
if(stkin.empty()) {
return 0;
}
int size = stkin.size();
for(int i = 0; i < size; i++) {
stkout.push(stkin.top());
stkin.pop();
}
}
return (stkout.top());
}
// Return whether the queue is empty.
bool empty(void) {
return(stkin.empty() && stkout.empty());
}
};
相关文章推荐
- UICollectionView实现的标签选择器
- [原]openstack-kilo--issue(五) neutron-agent服务实际是active的-但是显示为XXX
- 异常解决:java.sql.SQLException: Incorrect string value: '\xD4\xDA\xB8\xF7\xB8\xF6'
- uiautomator日志转junit日志
- Entity FrameWork利用Database.SqlQuery<T>执行存储过程并返回参数
- 225. Implement Stack using Queues
- Android Stuido 使用过程中遇到的问题
- 父页面调用easyui datagrid
- 贝塞尔曲线(UIBezierPath)属性、方法汇总
- android安装内核module,提示Required key not
- iOS UIImage渲染模式 imageWithRenderingMode:
- 利用sass构建组件化的ui库
- UINavigationController的setViewControllers方法
- 成长记-UILable设置行间距
- easyui1.4.1下的tree
- Vue.js初探
- android bluedroid 协议栈里面的各个组件之间的消息处理机制
- Android 设计模式 笔记 - Builder模式
- solr msg=SolrCore 'collection1' is not available due to init failure
- arduino安装ESP8266 Arduino core