当前位置:   article > 正文

如何实现具有最大值、最小值和中间值的栈和队列_站的最大值最小值

站的最大值最小值

在研究“如何实现具有最大值、最小值和中间值的栈和队列”前,我们先考虑以下问题,然后由此过度到题目问题。

1)如何用两个栈实现队列

2)如何用两个队列实现栈

3)如何实现包含获取最小值函数getMin()的栈

4)如何实现包含获取中间值函数getMedian()的栈

5)如何实现包含获取最小值函数getMin()的队列

1 如何用两个栈实现队列

在研究问题前,我们可以用2个栈模拟一下具体操作过程,可以总结出以下规律:

入队:元素插入stack1;

出队:如果stack2中为空,先将stack1中元素入栈stack2,然后再将stack2的栈顶元素出栈。否则直接将stack2中元素出栈。

队列为空:stack1和stack2同时为空

队列大小:为stack1和stack2大小之和

具体过程见下图(图来自《剑指offer》)


Java实现代码如下

  1. public class QueueByStack<E extends Comparable<E>> {
  2. private LinkedList stack1=null;
  3. private LinkedList stack2=null;
  4. //constructor
  5. public QueueByStack(){
  6. stack1=new LinkedList();
  7. stack2=new LinkedList();
  8. }//end QueueByStack
  9. public void insert(E e){
  10. stack1.addLast(e);
  11. }//
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/960660
推荐阅读
相关标签
  

闽ICP备14008679号