1.用栈实现队列
典例1: LeetCode 232 232. 用栈实现队列 - 力扣(Leetcode)
备注:基本思想就是用一个栈实现入队列,另一个实现出队列。
进队列操作始终在一个栈内完成。
出队列时,若控制“出”的栈中有元素,则直接出。
否则要先将另一个“入”栈内的元素全部push过来,再pop(反序再出)。
2.用队列实现栈
典例1: LeetCode 225 225. 用队列实现栈 - 力扣(Leetcode)
备注:用两个队列实现,确实可以,但是没有必要。
用一个队列实现的关键就是要将 size - 1的元素出队后再重新入队。
小结:怎么说.......栈和队列这两个数据结构,入栈 / 入队 不是区分的重点。
坦白说,我对栈和队列的区分度不大,栈和队列的唯一区别就是出元素的顺序。
在栈里,缺口只有一个,即是入口也是出口,因而模拟队列必须要两个栈。
但是在队列里,有两个缺口,重新入队以调整顺序的思路,我想是不难思考的。