• (栈)剑指 Offer 09. 用两个栈实现队列(java)


    1.题目详情:

    2.实例:

    3.分析:

    实例花里胡哨的  说白了就是用两个栈一个用入栈实现队列中的入队,一个用弹栈实现队列中的出队,实例输入写的花里胡哨 很多人可能都看不动 写出来也不懂怎么测试

    看这里:(提交代码那 下面)

     解释::"你的CQueue对象将被实例化并像这样调用:"

    就是创建一个对象 用这个对象调用这两个方法   这里的value的意思是你要入队的值

    要是还听不懂下面我拿实例1给做测试

    4.具体操作:

    1. package com.ffyc.algorithm;
    2. import java.util.Stack;
    3. public class offer09 {
    4. //剑指offer9 栈和队列
    5. //题目:剑指 Offer 09. 用两个栈实现队列
    6. /*题目描述:
    7. 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,
    8. 分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )
    9. */
    10. private Stack enStack;//实现入队功能的入栈
    11. private Stack outStack;//实现出队功能的弹栈
    12. public offer09() {//构造方法初始化
    13. enStack=new Stack<>();
    14. outStack=new Stack<>();
    15. }
    16. public void appendTail(int value) {//在enStack中入栈
    17. enStack.push(value);
    18. }
    19. public int deleteHead() {//在outStack中弹栈(弹栈的前提是栈里面有元素)
    20. //如果outStack为空
    21. if (outStack.isEmpty()){
    22. //就有判断enStack栈里面有没有元素 有元素拿到outStack栈中弹 没有直接返回-1
    23. if (enStack.isEmpty()){
    24. return -1;
    25. }else {
    26. while (!enStack.isEmpty()){
    27. outStack.push(enStack.pop());//把enStack的一个个拿出来放进outStack
    28. }
    29. }
    30. }else {//如果outStack不为空 (这一步可以不写 但是为了思路清晰 我这里就写上)
    31. //TODO 直接弹嘛
    32. return outStack.pop();//弹栈了就要返回回去 不然这里不返回那里返回 最后返回的数组里对不上
    33. }
    34. return outStack.pop();//弹栈把弹的元素返回
    35. }
    36. public static void main(String[] args) {
    37. offer09 offer09=new offer09();//构造为空 没有返回值null
    38. offer09.appendTail(3);//入队一个3 没有返回值null
    39. System.out.println(offer09.deleteHead());//出队 (会把3返回回来)
    40. System.out.println(offer09.deleteHead());//出队 没了 返回-1
    41. System.out.println(offer09.deleteHead());//出队 没了 返回-1
    42. }
    43. }

    5.测试结果:

    6.力扣提交:

     

  • 相关阅读:
    Java&Excel:自动生成数据表并插入数据
    支持向量机(SVM)算法基本原理&skearn实现
    在Ubuntu18.04中更新指定python版本以及pip
    扫描电镜下的人体感官结构,超震撼
    k8s.7-Kubernetes集群UI及主机资源监控
    AQS 为什么要使用双向链表?
    DDD落地:从美团抽奖平台,看DDD在大厂如何落地?
    怎么下载微信视频号视频?
    集成电路CD40161-多功能计数器和分频器的重要性 | 百能云芯
    docker阅读笔记
  • 原文地址:https://blog.csdn.net/qq_56047419/article/details/127987045