Swift-两个栈实现队列

题目:两个栈实现队列,栈是先入后出,队列是先入先出,两个栈可以利用这个特点实现队列.

核心代码:
<pre><code>`class MyQueue {

var stackNew:[Int] = []
var stackOld:[Int] = []

func push(value:Int) {
    stackNew.append(value)
}

func peek() -> Int? {
    shiftStacks()
    let value:Int? = stackOld.last
    if value != nil {
        stackOld.removeLast()
    }
    return value
}

private func shiftStacks() {
    if stackOld.count == 0 {
        while stackNew.count > 0 {
            let value:Int = stackNew.last!
            stackNew.removeLast()
            stackOld.append(value)
        }
    }
}

}`</code></pre>

测试代码:
<pre><code>`var myQueue:MyQueue = MyQueue()
for i in 0...3 {
myQueue.push(value: i)
}

var topValue:Int? = myQueue.peek()
if topValue != nil {
print("FlyElephant---顶部数据:(topValue!)")
}

for i in 10...15 {
myQueue.push(value: i)
}

for i in 0...4 {
var topValue:Int? = myQueue.peek()
if topValue != nil {
print("FlyElephant---顶部数据:(topValue!)")
}
}`</code></pre>


FlyElephant.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容