Skip to content
On this page

09.用两个栈实现队列

题目

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )

思路

  • 建立栈s1和s2
  • 添加元素时,直接加入s1
  • 删除元素时
    • 如果s2不为空,直接s2.pop();
    • 如果为空,则将s1的全部pop,并以此push到s2中;在s2.pop();
    • 如果s2最后为空,返回-1。

AC代码