Swift中的栈和队列

//栈是后进先出的结构
//栈结构的类
//支持push,pop,isEmpty,peek,size
class Stack {
    var stack: [AnyoBject]
    
    init() {
        stack = [AnyoBject]()
    }

    func push(object: AnyObject) -> Bool {
        return stack.append(object)
    }

    func pop() -> AnyObject? {
        if !isEmpty() {
            return stack.removeLast()
        } else {
            return nil
        }
    }

    func isEmpty() -> Bool {
        return stack.isEmpty
    }

    func peek() -> AnyObject? {
        return stack.last
    }

    func size() -> Int {
        return stack.count
    }
}

//队列是先进先出的类
//应用GCD,NSOperationQueue
//enqueue,dequeue,isEmpty,peek,size
class Queue {
    var queue: [AnyObject]
    
    init() {
        queue = [AnyObject]()
    }

    func enqueue(object: AnyObject) -> Bool {
        return queue.append(object)
    }
    
    func dequeue() -> AnyObject? {
        if !isEmpty() {
            return queue.removeFirst()
        } else {
            return nil

        }
    }
    
    func isEmpty() -> Bool {
        return queue.isEmpty
    }
    
    func peek() -> AnyObject? {
        return queue.first
    }

    func size() -> Int {
        return queue.count
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容