• 剑指offer系列5---两个栈 模拟队列的操作


    【题目】两个栈 模拟队列的入队出队操作

     1 package com.exe1.offer;
     2 
     3 /**
     4  * [题目 ]:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
     5  * 队列的出队:应该是队列的列首先出,即栈底元素先出;思路:先把stack1元素一个个弹至上stack2中,再顺序出stack2中数即为队列的出队顺序。
     6  *      入队:先放到栈1中
     7  * @author WGS
     8  *
     9  */
    10 import java.util.Stack;
    11 
    12 public class CreateQueueWithTwoStacks {
    13 
    14     //1 创建两个栈
    15     Stack<Integer> stack1=new Stack<>();
    16     Stack<Integer> stack2=new Stack<>();
    17     //2 队列的入队操作
    18     public void push(int num){
    19         stack1.push(num);
    20     }
    21     //3 队列的出队操作
    22     public int pop(){
    23         if(stack2.size()<=0){
    24             while(stack1.size()>0){
    25                 stack2.push(stack1.pop());//先把stack1中元素弹至stack2中,当stack1没有元素的时候,就将stack2元素弹出
    26             }
    27         }
    28         //异常处理
    29         if(stack2.size()==0){
    30             try{
    31                 throw new Exception("empty queue");
    32             }catch(Exception e){
    33                 e.printStackTrace();
    34             }
    35         }
    36         return stack2.pop();
    37     }
    38 
    39     
    40     
    41     
    42     
    43     public static void main(String[] args) {
    44         CreateQueueWithTwoStacks cq=new CreateQueueWithTwoStacks();
    45         cq.push(1);
    46         cq.push(2);
    47         cq.push(3);
    48         //模拟123顺序进队,下面可看到依然是以先进先出顺序123出
    49         System.out.println(cq.pop());
    50         System.out.println(cq.pop());
    51         System.out.println(cq.pop());
    52 
    53         //再模拟入队操作,再插入一个数
    54         cq.push(4);
    55         System.out.println(cq.pop());
    56         cq.push(5);
    57         System.out.println(cq.pop());
    58     }
    59 
    60 }
  • 相关阅读:
    jquery操作删除元素
    js添加页面元素
    jQuery方法
    form表单的几种提交方式
    Comparable和Comparator
    快速失败和安全失败
    Junit 测试基础
    Spring 之AOP 面向切面编程
    spring 的核心接口
    Nginx
  • 原文地址:https://www.cnblogs.com/noaman/p/5379178.html
Copyright © 2020-2023  润新知