Python数据结构与算法(3.4)——队列相关应用与习题
0. 学习目标
我们已经学习了队列的相关概念以及其实现,同时也了解了队列在实际问题中的广泛应用,本节的主要目的是通过队列的相关习题来进一步加深对队列的理解,同时能够利用队列降低一些复杂问题解决方案的时间复杂度。
1. 使用两个栈实现一个队列
[问题] 给定两个栈,仅使用栈的基本操作实现一个队列。
[思路] 解决此问题的关键在于栈的反转特性,入栈的一系列元素在出栈时会以相反的顺序返回。因此,使用两个栈就可以实现元素以相同的顺序返回(反转的元素序列再次反转后就会得到原始顺序)。具体操作如下图所示: