数据结构:两个栈实现一个队列(面试题)

前言:今天第一次尝试了电话面试实习生的经历,问到了一道数据结构的知识,没有答上来,现在来总结一下。

设定一个栈为栈s1,一个为栈s2

思路一:

入队列: 直接压入栈s1即可
出队列:先把栈s1的元素弹入栈s2,弹出栈s2的栈顶元素,再将剩余s2的元素弹回栈s1

思路二:

入队列:如果栈s1为空时,把栈s2所有元素弹回栈s1,否则直接压入s1
出队列:如果栈s2不为空时,弹出栈s2的栈顶元素,否则把栈s1的所有元素弹入栈s2,再弹出栈s2顶元素。

思路三:

入队列: 直接压入栈s1即可
出队列:如果栈s2不为空时,把栈s2的栈顶元素弹出,否则,把栈s1的所有元素全部弹入栈s2中,再弹出s2的栈顶元素。

数据结构:两个栈实现一个队列(面试题)