队列

群组
欢迎加入群组,闲聊工作&技术&问题等

像栈一样,队列(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 队列

 上一篇
Method解读 Method解读
群组欢迎加入群组,闲聊工作&技术&问题等         我们知道iOS程序的入口函数在main.其实mian只是苹果给我们的”直观能够感受”
下一篇 
栈
群组欢迎加入群组,闲聊工作&技术&问题等         栈(stack)是限制插入和删除只能在一端进行的表,该位置称为栈顶(top).对栈的
  目录