群组
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)–译者: 冯舜玺