225.Implement Stack using Queues (用队列实现栈)
来源:互联网 发布:网络写字员兼职 编辑:程序博客网 时间:2024/06/02 01:37
题目:
Implement the following operations of a stack using queues.
- push(x) -- Push element x onto stack.
- pop() -- Removes the element on top of the stack.
- top() -- Get the top element.
- empty() -- Return whether the stack is empty.
- You must use only standard operations of a queue -- which means only
push to back
,peek/pop from front
,size
, andis empty
operations are valid. - Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
- You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack)
代码:
方法一:使用两个队列
class MyStack {
// Push element x onto stack.
Queue<Integer> queue = new LinkedList<Integer>();
Queue<Integer> temp = new LinkedList<Integer>();
// Use two queue.
public void push(int x) {
while(!queue.isEmpty()){
temp.add(queue.poll());
}
queue.add(x);
while(!temp.isEmpty()){
queue.add(temp.poll());
}
}
// Removes the element on top of the stack.
public void pop() {
queue.poll();
}
// Get the top element.
public int top() {
return queue.peek();
}
// Return whether the stack is empty.
public boolean empty() {
return queue.isEmpty();
}
}
class MyStack {
// Push element x onto stack.
Queue<Integer> queue = new LinkedList<Integer>();
Queue<Integer> temp = new LinkedList<Integer>();
// Use two queue.
public void push(int x) {
while(!queue.isEmpty()){
temp.add(queue.poll());
}
queue.add(x);
while(!temp.isEmpty()){
queue.add(temp.poll());
}
}
// Removes the element on top of the stack.
public void pop() {
queue.poll();
}
// Get the top element.
public int top() {
return queue.peek();
}
// Return whether the stack is empty.
public boolean empty() {
return queue.isEmpty();
}
}
方法二:只用一个queue(先push进去,然后把前面的数以此取出,再放入队列);
public void push(int x) {
queue.add(x);
int len = queue.size()-1;
while(len>0){
queue.add(queue.poll());
len-- ;
}
}
0 0
- 225.Implement Stack using Queues (用队列实现栈)
- 225. Implement Stack using Queues (用队列实现栈)
- leetcode 225. Implement Stack using Queues 双队列实现栈
- 栈-Implement Stack using Queues(用队列实现栈)
- Implement Stack using Queues 用队列实现栈
- Implement Stack using Queues 用队列实现栈
- 225. Implement Stack using Queues (用队列模拟栈)
- 225. Implement Stack using Queues 用两个队列实现栈的基本操作。
- Leetcode 225 Implement Stack using Queues 使用队列实现栈
- Implement Stack using Queues 两个队列实现一个栈
- 两个队列实现一个栈[leetcode]Implement Stack using Queues
- LeetCode Implement Stack using Queues 栈&队列
- LeetCode 225. Implement Stack using Queues(使用队列来实现栈)
- LeetCode 225 Implement Stack using Queues(用队列来实现栈)(*)
- 225.Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 数据结构——赫夫曼编码
- ctemplate模板
- VS2010+DCMTK3.6.0 : MT支持库 安装说明
- Rsync、Unison及DRBD的比较
- HDU 2084 数塔(DP)
- 225.Implement Stack using Queues (用队列实现栈)
- eclipse启动tomcat服务几种错误总结
- ios总结(多页面跳转:)
- 怎样充分利用失败
- 网页资源下载器
- LeetCode || Partition List
- 汉诺塔 X(二分法)
- Java通过poi读取word,excel,ppt文件中文本(excel,ppt部分)
- flvstreamer