首页 > 技术文章 > 栈 (Swift数组实现栈)

ZeroHour 2018-12-12 16:34 原文

// 用数组实现栈
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)

 

推荐阅读