美文网首页
swift用栈实现队列

swift用栈实现队列

作者: 前年的邂逅_Jerry | 来源:发表于2019-10-15 22:52 被阅读0次
class ViewController: UITableViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        var stack = IntegerStack()
        var queue = MyQueue()
        queue.enqueue(1)
        queue.enqueue(2)
        queue.enqueue(3)
        queue.enqueue(4)
        queue.enqueue(5)
        queue.enqueue(6)
        
        print(queue.dequeue())
        print(queue.dequeue())
        print(queue.dequeue())
        print(queue.dequeue())
        print(queue.dequeue())
        print(queue.dequeue())
        print(queue.dequeue())
        print(queue.dequeue())
    }
}
struct MyQueue {
    var stackA = IntegerStack()
    var stackB = IntegerStack()
    /// 入队
    func enqueue(_ val : Int) -> Void {
        stackA.push(val)
    }
    //出队
    func dequeue() -> Int? {
        shift()
        return stackB.pop()
    }
    /// 交换栈数据
    func shift() {
        if stackB.isEmpty{
            while (!stackA.isEmpty){
                if let element = stackA.pop() {
                    stackB.push(element)
                }
            }
        }
    }
}
protocol Stack {
    associatedtype Element
    var isEmpty : Bool {get}
    var size : Int {get}
    //栈顶元素
    var peek : Element?{get}
    
     func push(_ newElement : Element)
    
     func pop() -> Element?
}
class IntegerStack : Stack {
    typealias Element = Int
    
    var isEmpty: Bool{
        return stack.isEmpty
    }
    
    var size: Element{
        return stack.count
    }
    
    var peek: Element?{
        return stack.last
    }
    
     func push(_ newElement: Element) {
        stack.append(newElement)
    }
    
     func pop() -> Element? {
        return stack.popLast()
    }
    
    var stack = [Element]()
}



相关文章

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • leecode刷题(26)-- 用栈实现队列

    leecode刷题(26)-- 用栈实现队列 用栈实现队列 使用栈实现队列的下列操作: push(x) -- 将一...

  • C语言第七次作业:链表

    707. 设计链表 空指针 空节点 225. 用队列实现栈 链式存储栈 双队列实现栈 232. 用栈实现队列 链式...

  • swift用队列实现栈

  • swift用栈实现队列

  • iOS开发集锦之 2017.03.30(Swift 算法实战之路

    1. Swift 算法实战之路:栈和队列 作者: 故胤道长描述:栈和队列的基本Swift实现,以及在iOS开发中应...

  • 队列之-队列实现栈

    一、队列实现栈核心算法概述 之前已经描述过了用栈实现队列的功能,见栈系列之-实现队列,那么同样队列也可以用来实现栈...

  • 38_两个有趣的问题

    关键词:通过栈实现队列、通过队列实现栈 0. 通过栈实现队列 用栈实现队列等价于用后进先出的特性实现先进先出的特性...

  • 栈&队列

    一、栈&队列总结 栈/队列的应用接雨水验证栈序列滑动窗口的最大值 栈/队列的特殊实现用两个栈实现队列用两个队列实现...

  • Swift 数据结构与算法实现

    用 Swift 实现了 Trie 字典树、并查集、堆和优先队列、哈希表、红黑树、集合与映射、链表、数组、栈、队列、...

网友评论

      本文标题:swift用栈实现队列

      本文链接:https://www.haomeiwen.com/subject/fdvemctx.html