首先棧是一個遵從“后進先出,先進后出”規則的序列。
同時還有兩個操作:
入棧操作,將一個元素放入棧中;
出棧操作,當棧不為空的時候,將棧頂元素(最后一個放入棧的元素)從棧中取出,棧中元素個數減一。
代碼如下:
struct Stack<Element> { //使用泛型讓棧能存儲各種元素
var items = [Element]()
mutating func push(_ item: Element) { //入棧
items.append(item)
}
mutating func pop() -> Element?{ //出棧
if items.count < 1 {
return nil
}
return items.removeLast()
}
}
棧的實現還是非常簡單的,需要注意的是入棧出棧方法使用了mutating修飾,這是為了改變結構體中的items成員變量,去掉則會有問題。