剑指offer学习笔记
考点:栈、队列
(一)
题目描述:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
分析:
栈是后进先出的原则,队列是先进先出的原则。
需要两个栈stack1和stack2,压栈的时候直接push进stack1,此时stack2为空。若要让先进的pop的话,则需要把stack1的数逐个push到stack2中,此时最先入栈的数已经在stack2的栈顶,可以pop。所以,在判断是否出栈的时候,需先判断stack1和stack2中元素的情况,如果stack1为空的话,从stack2 中pop;stack1不为空的话,把stack1的元素push进入stack2,然后pop stack2的值。
实现: