[讨论] 用两个 Stack 来实作一个 Queue

楼主: Jruffian   2015-12-22 02:49:30
大家好,最近再写LeetCode,
遇到了这题 "用两个Stack来实作一个Queue"
我的想法是 Queue 是 FIFO的概念,
使用lisked list和两个headPtr及TailPtr分别锁住头跟尾
push就加到尾端,pop就从头搬出。
就可以简单的完成queue,
那想请问的是这题目"用两个Stack来实作一个Queue"
需要用到两个stack的主要用意是什么?
有什么样的应用会使用到类似的方法。
顺便想问大家,
做了leetcode的题目,挫折感好高
连easy的题目有时候都做不出来,需要要参考其他人的作法
但网络上的神人都超强的,代码一个比一个精简,
想请问这样的功力是天生的还是经验累积?
大家都会参考别人的作法再变成自己的东西,
如果是天生的,是不是赶快转行比较快?
谢谢大家
作者: fatrabitree (胖兔子)   2015-12-22 03:03:00
就是纯练习基础先打一下再去刷leetcode,至少资结跟算法要看这样至少会做easy 其他就靠经验
楼主: Jruffian   2015-12-22 04:07:00
谢谢F大的意见
作者: testPtt (测试)   2015-12-22 08:15:00
要out的时候放到另一个stack再放回去准备in通常做这种无聊事很偏硬件 可能是内存不配位址之类的
作者: andrenvq57 (喂!威,喂?)   2015-12-22 14:31:00
push all elements into s1, while s1 not empty: pops1, push into s2 这样就反过来了pop queue: pop s2. push queue: pop all from s2, push all to s1, push new element to s1, pop all froms1, push all to s2
作者: HolyBugTw (HolyBug)   2015-12-22 15:35:00
两个杯子倒来倒去,人生能用上的话就有用(用的上吗?)
作者: stupid0319 (征女友)   2015-12-22 17:39:00
用多个Stack来做Queue也是很常见啊,但不是刻意就是了

Links booklink

Contact Us: admin [ a t ] ucptt.com