// 用数组实现栈
class Stack {
// 数组: 存储内容
var stack: [AnyObject]
// 栈是否为空: 判断数组是否为空
var isEmpty: Bool {
return stack.isEmpty
}
// 栈顶: 数组的最后一条数组
var peek: AnyObject? {
return stack.last
}
// 初始化栈, 也就是初始化数组
init() {
stack = [AnyObject]()
}
// 入栈操作: 向数组中追加数据
func push(object: AnyObject) {
stack.append(object)
}
// 出栈操作: 从数组中移除最后一条数据
func pop() -> AnyObject? {
if !isEmpty {
return stack.removeLast()
} else {
return nil
}
}
}
// 创建栈
var myStack = Stack()
// 入栈
myStack.push(object: String(2) as AnyObject)
myStack.push(object: String(5) as AnyObject)
// 出栈
var result = myStack.pop()
print(result!)
// 打印栈中的数据
print(myStack.stack)