队列

群组
Flutter,iOS,Android,Python等,闲聊工作&技术&问题;
个人主页:https://waitwalker.cn
telegram群链接:https://t.me/joinchat/Ej0o0A1ntlq5ZFIMzzO5Pw

像栈一样,队列(queue)也是表.队列的操作操两端进行,一端插入,一端删除.

队列的基本操作

入队(Enqueue)操作

入队是在队列的末尾插入元素.

出队(Dequeue)操作

出队是移除队列的首元素.
队列

队列的数组实现

队列的实现也相对简单,这里我们直接用数组来实现.

队列的定义

// MARK: - 队列
struct Queue<T> {
    private(set) var elements:[T] = []

    // MARK: - 构造函数
    init() {
    }
}

enqueue

入队操作在数组的末尾插入元素

/// enqueue操作
    ///
    /// - Parameter element: 入队元素
    mutating func enqueue(element:T) -> Void {
        elements.append(element)
    }

dequeue

出队操作移除数组的首元素

/// dequeue操作
    mutating func dequeue() -> Void {
        guard elements.count > 0 else {
            return
        }
        elements.removeFirst()
    }

源码地址

        这里的实现代码已放到GitHub,测试用例详见DataStructureAlgorithmTests.swift文件

参考文献

《数据结构与算法分析C语言描述》(Data Structures and Algorithm Analysis in C:Second Edition)–译者: 冯舜玺


  转载请注明: waitwalker 队列

  目录