美文网首页
first in first out

first in first out

作者: 轻云绿原 | 来源:发表于2017-04-03 12:19 被阅读2次

今天写了一个容器,first in first out,代码如下:

class Node<T>:NSObject{
    let data:T
    init(data:T) {
        self.data = data
    }
    
    var next:Node?
}
/// 先进先出的算法。
class FirstInFirstOut<T> {
    private var head:Node<T>? = nil
    private var rear:Node<T>? = nil
    private(set) var count:Int = 0
    
    var isEmpty:Bool{
        return count == 0
    }
    
    /// 加入数据
    func push(object:T){
        if isEmpty {
            head = Node(data: object)
            head?.next = nil
            
            rear = head
            
        }else{
            rear?.next = Node(data: object)
            rear = rear?.next
        }
        count += 1
    }
    
    ///拿出数据
    func pop() -> T?{
        guard !isEmpty else {
            return nil
        }
        
        let res = head!.data
        head = head?.next
        
        count -= 1
        
        return res
    }
}

相关文章

网友评论

      本文标题:first in first out

      本文链接:https://www.haomeiwen.com/subject/wjonottx.html