美文网首页
swift创建队列

swift创建队列

作者: 前年的邂逅_Jerry | 来源:发表于2019-10-14 22:59 被阅读0次
    
    protocol Queue{
        //持有元素类型
        associatedtype  Element
        //是否为空
        var isEmpty : Bool{get}
        //队首元素
        var peek : Element?{get}
        //队列长度
        var size : Int {get}
        //进队
        mutating func enqueue(_ element : Element)
        //出队
        mutating func dequeue() -> Element?
    }
    
    struct IntegerQueue : Queue{
        
        
        typealias Element = Int
        //是否为空
        var isEmpty : Bool{return left.isEmpty && right.isEmpty}
        //队首元素
        var peek : Element?{left.isEmpty ? right.first : left.last}
        //队列长度
        var size : Int {return left.count + right.count}
        //进队
        mutating func enqueue(_ element : Element){
            right.append(element)
        }
        //出队
        mutating func dequeue() -> Element?{
            if left.isEmpty{
                left = right.reversed()
                right.removeAll()
            }
            return left.popLast()
        }
        
        var left = [Element]()
        
        var right = [Element]()
        
    }
    
    
    

    相关文章

      网友评论

          本文标题:swift创建队列

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