• 剑指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 }
  • 相关阅读:
    编译原理知识点整理
    LeetCode 3.无重复字符的最长字串
    LeetCode 2.两数相加
    LeetCode 1.两数之和
    《硅谷之火》中的个人计算机梦
    Linux常用命令行指令(持续更新~)
    idea常用快捷键(随时更新~)
    解决idea中使用maven创建spring mvc项目时创建过慢问题
    spring实战第二章小记-装配bean
    HTML5 Video播放服务端大文件
  • 原文地址:https://www.cnblogs.com/noaman/p/5379178.html
Copyright © 2020-2023  润新知