# Implement Stack using Queues

111人阅读 评论(0)

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.
Notes:
• You must use only standard operations of a queue -- which means only push to backpeek/pop from frontsize, and is 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).

Update (2015-06-11):
The class name of the Java function had been updated to MyStack instead of Stack.

Credits:
Special thanks to @jianchao.li.fighter for adding this problem and all test cases.

Have you met this question in a real interview?

class MyStack {

List<Integer> stack = new ArrayList<>();

// Push element x onto stack.
public void push(int x) {
}

// Removes the element on top of the stack.
public void pop() {
if(!empty()){
stack.remove(stack.size()-1);
}
}

// Get the top element.
public int top() {
if(!empty()){
return stack.get(stack.size()-1);
}
return -1;
}

// Return whether the stack is empty.
public boolean empty() {
return stack.size()==0;
}
}

class MyStack {

Queue<Integer> q1 = new ArrayDeque<>();
Queue<Integer> q2 = new ArrayDeque<>();

// Push element x onto stack.
public void push(int x) {
}

// Removes the element on top of the stack.
public void pop() {
if(!q1.isEmpty()){
while(q1.size()>1){
}
q1.poll();
}else{
while(q2.size()>1){
}
q2.poll();
}

}

// Get the top element.
public int top() {

if(!q1.isEmpty()){
while(q1.size()>1){
}
int top = q1.peek();
}else{
while(q2.size()>1){
}
int top = q2.peek();
}
}

// Return whether the stack is empty.
public boolean empty() {
return q1.isEmpty()&&q2.isEmpty();
}
}

0
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：41995次
• 积分：1791
• 等级：
• 排名：千里之外
• 原创：139篇
• 转载：31篇
• 译文：0篇
• 评论：1条
文章分类