两个栈实现队列

博客围绕用两个栈实现一个队列展开,需完成队列的Push和Pop操作,队列元素为int类型,还提及了相关题目,同时给出了转载链接。

题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

 1 public class Solution {
 2     Stack<Integer> stack1 = new Stack<Integer>();
 3     Stack<Integer> stack2 = new Stack<Integer>();
 4     
 5     public void push(int node) {
 6         stack1.push(node);
 7     }
 8     
 9     public int pop() {
10         if(stack2.size()==0){
11             while(stack1.size()!=0){
12                 stack2.push(stack1.pop());
13             }
14        }
15         return stack2.pop();
16     }
17 }

 相关题目:两个栈实现一个队列

 1 public class Solution {
 2     Queue<Integer> queue1= new Queue<Integer>();
 3     Queue<Integer> queue2= new Queue<Integer>();
 4     
 5     public void push(int node) {
 6          if(queue1.isEmpty() && queue2.isEmpty()){
 7             queue1.add(element);
 8         }
 9 
10         if(queue1.isEmpty()){
11             queue2.add(element);
12         }
13  
14         if(queue2.isEmpty()){
15             queue1.add(element);
16         }
17     }
18     
19     public int pop() {
20        if(queue1.isEmpty() && queue2.isEmpty()){
21             return;
22         }
23     
24         if(queue1.isEmpty()){
25         while(queue2.size()>1){
26                  queue1.add(queue2.poll());
27              }
28             return queue2.poll();
29        }
30 
31       if(queue2.isEmpty()){
32         while(queue1.size()>1){
33                  queue2.add(queue1.poll());
34              }
35             return queue1.poll();
36        }
37 
38     }
39 }

 

转载于:https://www.cnblogs.com/JingM/p/10990944.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值