码迷,mamicode.com
首页 > 其他好文 > 详细

利用两个栈实现队列

时间:2016-04-22 01:32:27      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:元素   队列   

方法一:

入队时,将元素压入s1

出队时,将s1的元素逐个“倒入”(弹出并压入)s2,将s2的顶元素弹出作为出队元素,之后再将s2剩下的元素逐个“倒回”s1


方法二:

入队时,先判断s1是否为空,如不为空,说明所有元素都在s1,此时将入队元素直接压入s1;如为空,要将s2的元素逐个“倒回”s1,再压入入队元素。

出队时,先判断s2是否为空,如不为空,直接弹出s2的顶元素并出队;如为空,将s1的元素逐个“倒入”s2,把最后一个元素弹出并出队。


最优解:

入队时,将元素压入s1

出队时,判断s2是否为空,如不为空,则直接弹出顶元素;如为空,则将s1的元素逐个“倒入”s2,把最后一个元素弹出并出队。


注意:考虑没有元素可供出队时的处理(2个栈都为空的时候,出队操作一定会引起异常)


参考:《剑指offer》面试题7

    http://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html



本文出自 “sunshine225” 博客,请务必保留此出处http://10707460.blog.51cto.com/10697460/1766356

利用两个栈实现队列

标签:元素   队列   

原文地址:http://10707460.blog.51cto.com/10697460/1766356

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!