/// 栈
// 用数组作为栈的线性表的实现
public struct Stack<T> {
// 数组
fileprivate var stackArray = [T]()
// count
public var count: Int {
return stackArray.count
}
// 是否为空
public var isEmpty: Bool {
return stackArray.isEmpty
}
// 顶部元素
public var top: T? {
guard !isEmpty else {
return nil
}
return stackArray.last
}
// push 操作
public mutating func push(_ element: T) {
stackArray.append(element)
}
// pop 操作
public mutating func pop() -> T? {
guard !isEmpty else {
print("stack is empty")
return nil
}
return stackArray.removeLast()
}
// 打印所有元素
public mutating func printAllElement() {
guard count > 0 else {
print("stack is empty")
return
}
print("npint all stack elements")
for (index, value) in stackArray.enumerated() {
print("[(index)](value)")
}
}
}
近期评论