栈(LIFO)

  • 注意到,压栈操作是将新元素压入数组的尾部,而不是头部。在数组的头部插入一个元素是一个很耗时的操作,它的时间复杂度为o(n),因为需要将现有元素
  • 往后移位为新元素腾出空间。而在尾部插入元素的时间复杂度为o(1),无论数组有多少个元素 ,这个操作所消耗的时间都是一个常量1
public struct Stack<T> {
    //实例化一个数组 管理栈
    fileprivate var array = [T]()

    //判断栈是否为空
    public var isEmpty: Bool {
        return array.isEmpty
    }

    //获取栈中成员数目
    public var count: Int {
        return array.count
    }

    //入栈
    public mutating func puch(_ element: T) {
        array.append(element)
    }

    //出栈
    public mutating func pop() -> T? {
        return array.popLast()
    }

    public var top: T? {
        return array.last
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容