栈
last in first out型
实例:打字消息的撤回
系统栈调用程序
(){}[]的匹配问题
可以用数组直接实现(操作数组头和数组尾),担心栈存储空间不够的话,可以使用动态数组(当数组中值很大,自动扩充容量的数组)
//泛型使用到结构体叫做泛型类型
//存储的数据跟其逻辑没有关系
//下面使用泛型声明一个栈
struct Stack<T>{
var num = [T]()
mutating func push( item : T){
num.append(item)
}
mutating func pop() ->T?{
guard !self.isEmpty() else{
return nil
}
return num.removeLast()
}
func isEmpty() ->Bool{
return self.num.count > 0 ? false : true
}
func peak() -> T? {
return self.num.last ?? nil
}
//计算型变量
var count : Int {
get{ return num.count}
}
}

本文深入探讨了栈数据结构的工作原理,包括其last-in-first-out特性,如何在编程中实现如消息撤回等功能,以及如何使用Swift语言通过泛型声明一个栈实例。文中详细解释了栈的push、pop、isEmpty和peak等核心操作。
213

被折叠的 条评论
为什么被折叠?



