栈 (Swift数组实现栈)

我们两清 提交于 2020-02-15 17:41:21
// 用数组实现栈
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)

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!