mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-26 00:56:29 +08:00
44 lines
1.3 KiB
Swift
44 lines
1.3 KiB
Swift
|
/**
|
|||
|
* File: deque.swift
|
|||
|
* Created Time: 2023-01-14
|
|||
|
* Author: nuomi1 (nuomi1@qq.com)
|
|||
|
*/
|
|||
|
|
|||
|
@main
|
|||
|
enum Deque {
|
|||
|
/* Driver Code */
|
|||
|
static func main() {
|
|||
|
/* 初始化双向队列 */
|
|||
|
// Swift 没有内置的双向队列类,可以把 Array 当作双向队列来使用
|
|||
|
var deque: [Int] = []
|
|||
|
|
|||
|
/* 元素入队 */
|
|||
|
deque.append(2)
|
|||
|
deque.append(5)
|
|||
|
deque.append(4)
|
|||
|
deque.insert(3, at: 0)
|
|||
|
deque.insert(1, at: 0)
|
|||
|
print("双向队列 deque = \(deque)")
|
|||
|
|
|||
|
/* 访问元素 */
|
|||
|
let peekFirst = deque.first!
|
|||
|
print("队首元素 peekFirst = \(peekFirst)")
|
|||
|
let peekLast = deque.last!
|
|||
|
print("队尾元素 peekLast = \(peekLast)")
|
|||
|
|
|||
|
/* 元素出队 */
|
|||
|
let pollFirst = deque.removeFirst()
|
|||
|
print("队首出队元素 pollFirst = \(pollFirst),队首出队后 deque = \(deque)")
|
|||
|
let pollLast = deque.removeLast()
|
|||
|
print("队尾出队元素 pollLast = \(pollLast),队尾出队后 deque = \(deque)")
|
|||
|
|
|||
|
/* 获取双向队列的长度 */
|
|||
|
let size = deque.count
|
|||
|
print("双向队列长度 size = \(size)")
|
|||
|
|
|||
|
/* 判断双向队列是否为空 */
|
|||
|
let isEmpty = deque.isEmpty
|
|||
|
print("双向队列是否为空 = \(isEmpty)")
|
|||
|
}
|
|||
|
}
|