栈
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}
}
}