1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| /// 栈 // 用数组作为栈的线性表的实现 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)") } } }
|