栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。读和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈,删除则称为退栈。 栈也称为后进先出表。
以下是Swift语法实现一个Stack类。
struct Stack<T> {
//存储元素
private var elements = [T]()
/// 元素数量
var count:Int {
return elements.count
}
/// 推入元素
///
/// - Parameter element: 元素
mutating func push(_ element:T) {
elements.append(element)
}
/// 弹出元素
///
/// - Returns: 被弹出的元素
mutating func pop() -> T {
return elements.removeLast()
}
}
以下是Stack的用法
//新建元素
var stack = Stack<Int>()
//推入元素
stack.push(1)
stack.push(2)
stack.push(3)
//计算stack大小
stack.count
//弹出元素
stack.pop()