/// 队列 queue
// 用数组来实现队列内部的线性表
public struct Queue<T> {
fileprivate var queueArray = [T]()
public var count: Int {
return queueArray.count
}
public var isEmpty: Bool {
return queueArray.isEmpty
}
// 前面的元素
public var front: T? {
if isEmpty {
print("queue is empty")
return nil
} else {
return queueArray.first
}
}
// 添加元素
public mutating func enqueue(_ element: T) {
queueArray.append(element)
}
// 移除元素
public mutating func dequeue() -> T? {
if isEmpty {
print("queue is empty")
return nil
} else {
return queueArray.removeFirst()
}
}
// 打印元素
public mutating func printAllElements() {
guard count > 0 else {
print("queue is empty")
return
}
print("nprint all queue elements:")
for (index, value) in queueArray.enumerated() {
print("[(index)](value)")
}
}
}
近期评论