首先栈是一个遵从“后进先出,先进后出”规则的序列。
同时还有两个操作:
入栈操作,将一个元素放入栈中;
出栈操作,当栈不为空的时候,将栈顶元素(最后一个放入栈的元素)从栈中取出,栈中元素个数减一。
代码如下:
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成员变量,去掉则会有问题。
网友评论