两个栈实现队列,两个队列实现栈

题目描述

用两个栈来实现一个队列,完成队列的 Push 和 Pop 操作。

解析:

	Stack<Integer> in = new Stack<Integer>();
	Stack<Integer> out = new Stack<Integer>();
    public void push(int node) { 
      in.push(node);
  }
 	public int pop() throws Exception { 
 		if (out.isEmpty()){
	  	  while (!in.isEmpty()) {
      		out.push(in.pop()); 
      }
    }
  		if (out.isEmpty())
 		  throw new Exception("queue is empty"); 
    return out.pop(); 
  }

题目描述

用两个队列来实现一个栈,完成栈的 Push 和 Pop 操作。

解析:这里只用了一个队列

class MyStack {
	 private Queue<Integer> queue;
 	 public MyStack() { 
 		 queue = new LinkedList<>(); 
 	 }
  	public void push(int x) {
  		 queue.add(x); 
   		int cnt = queue.size();
    	while (cnt-- > 1) {
    	 queue.add(queue.poll()); 
    	 } 
     }
     public int pop() {
     	return queue.remove(); 
     }
     public int top() { 
     	return queue.peek(); 
     }
     public boolean empty() { 
    	 return queue.isEmpty(); 
     }
   }
全部评论

相关推荐

不愿透露姓名的神秘牛友
01-19 15:35
公务员 锡山 11k 本科211
offer求求哩:就是你天天乱花我们纳税人的钱是吧😆😆
点赞 评论 收藏
分享
2024-12-04 19:53
已编辑
湖南文理学院 产品经理
牛客224543458号:他想找牛马,愿意疯狂加班的,因为要证明自己
点赞 评论 收藏
分享
换个名字Z:我在小红书和牛客刷到不下于5篇自愿无薪实习的(姿态降的像奴才一样),环境就是被这些人搞差的恶而不自知
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务