永发信息网

用两个栈实现一个队列的功能?要求给出算法和思路!

答案:1  悬赏:50  手机版
解决时间 2021-04-01 02:32
  • 提问者网友:我没有何以琛的痴心不悔
  • 2021-03-31 03:50
用两个栈实现一个队列的功能?要求给出算法和思路!
最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-03-31 05:05
举例说明,假设我们进行以下4步:
push 1, 2
pop //此时应pop 1
push 3
pop //此时应pop 2

在运行第一个pop时,把A中的1,2全push到B中去,然后再pop得到1,此时B中还剩一个2
下一步push 3,是push到A中
最后一步pop,把B中的2给pop出去

关键点:
(2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;

这里隐含了一点,如果为空,就直接从B中pop,不对A进行任何操作。很显然,需要if..else语句。

弹栈和一般的出栈不同,需要多一部检测B是否为空。
如果B不为空,则直接从B出栈,这时与一般的出栈相同。
如果B为空,则需要把A中所有的元素出栈并压栈到B中去,然后再对B进行一般的出栈操作。追问弹栈。出栈。压栈。各是什么意思。他们之间的关系是什么?追答你是问我字面意思?晕。弹栈和出栈一回事,就是pop。压栈就是push。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯