- 注意到,压栈操作是将新元素压入数组的尾部,而不是头部。在数组的头部插入一个元素是一个很耗时的操作,它的时间复杂度为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
}
}