根据百度百科的定义:
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
在swift中实现一个栈的数据结构其实很简单,这里利用数组来实现了一个栈的数据结构:
/// 栈的实现public struct Stack{
/// 使用数组实现栈
fileprivate var array = [T]()
/// 返回栈中元素数量
public var count: Int {
return array.count
}
/// 返回栈中的元素是否为空
public var isEmpty: Bool {
return array.isEmpty
}
/// 加入元素
public mutating func push(_ element: T) {
array.append(element)
}
/// 弹出元素
public mutating func pop() -> T? {
return array.popLast()
}
/// 返回栈顶元素
public var top: T? {
return array.last
}
}
下面用一个例子来测试这个写好的数据结构
/// 栈功能测试
// 创建栈
var stackOfNames = Stack(array: ["Carl", "Lisa", "Stephanie", "Jeff", "Wade"])
// 加入元素
stackOfNames.push("Mike")
// 打印元素
print(stackOfNames.array)
// 移除元素
stackOfNames.pop()
// 查看栈顶元素
stackOfNames.top
// 查看栈是否为空
stackOfNames.isEmpty
这里要感谢raywenderlich网站提供了这么好的资源
网友评论