import UIKit
//先进后出为栈、可以理解为一叠碗
class Stack{
//任意类型数组
var stack: [AnyObject]
init(){
// 对数组初始化
stack=[AnyObject]()
}
// 判断是否为空
func isEmpty()->Bool{
return stack.isEmpty
}
// 获取堆栈的大小
func size() -> Int{
return stack.count
}
// 用来往堆栈中添加一个新的元素,新的元素将被追加到数组的尾部
func push(object:AnyObject){
stack.append(object)
}
// 从堆栈中移除一个元素,并返回被移除的元素
func pop()->AnyObject?{
if(isEmpty()){
return nil
}
else{
return stack.removeLast()
}
}
}

var stack=Stack()
stack.isEmpty()
stack.push(object: UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0))
stack.push(object: UIColor(red: 0.0, green: 1.0, blue: 1.0, alpha: 1.0))
stack.pop()
//先进先出。可以理解为排队登机 先排队 先登机
class Queue{
var queue:[AnyObject]
init(){
queue=[AnyObject]()
}
// 判断是否为空
func isEmpty()->Bool{
return queue.isEmpty
}
// 获取堆栈的大小
func size() -> Int{
return queue.count
}
// 用来往堆栈中添加一个新的元素,新的元素将被追加到数组的尾部
func push(object:AnyObject){
queue.append(object)
}
// 从堆栈中移除一个元素,并返回被移除的元素
func pop()->AnyObject?{
if(isEmpty()){
return nil
}
else{
return queue.removeFirst()
}
}
}


var queue=Queue()
queue.isEmpty()
queue.push(object: UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0))
queue.push(object: UIColor(red: 0.0, green: 1.0, blue: 1.0, alpha: 1.0))
queue.pop()