题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
原理
先分析栈和队列的不同,一个是先入后出FILO,一个是先入先出FIFO
我们拥有两个栈,可以让其中一个栈作为队列的入口,负责插入新元素;另一个栈作为队列的出口,负责移除老的元素
使用两个栈A,B,其中假定A负责push操作,B负责pop操作。
实现队列的push操作, 每次进行添加操作,都会相应得对栈A进行添加元素。
实现队列的pop操作,每次进行删除操作,因为栈B负责pop操作,判断B是否为空,不为空则直接出栈,为空时将栈A全部入到栈B中,在进行出栈
代码实现
1 | class StackToQueue |