用两个栈实现队列

前言:
 这也是一道比较简单的题目
 下面说说我的思路吧
 思路:两个栈,一个栈是push()方法中存放元素的栈(stack1);在pop()方法中,将stack1的除首元素外的所有元素循环出栈给stack2,那么stack1的出栈操作即可拿到队列的pop()的返回值,然后将stack1清空,将stack2的所有元素全部出栈给stack1,那么这个队列的pop()方法就完成了。
 重点在于两个栈实现队列的pop()方法的实现


 好吧,下面放代码


这题不难,下面写点收获吧,就翻了翻Java的Stack源码,回忆了下Java数据结构吧

  • Stack类还是比较古老的,JDK1.0就有了,继承了Vector,底层还是数组实现的
  • Java的Stack除了push()、pop()方法外,还有peek()方法,用于返回栈顶元素的值,不出栈;此外还有几个,都比较简单,翻翻都能看懂
  • emm,或许还有更优的解法,后续知道了,会增修本篇
posted @ 2019-04-22 22:25  AloeAndClover  阅读(170)  评论(0编辑  收藏  举报