CS, Data Structure - Stack, Queue

5847 ワード

🧐 データ構造において,線形構造における代表的なStackとQueueについてまとめた.

🍁 Stack


Stackは、末尾にのみデータを追加または削除するデータ構造であり、pushまたはpushにデータを追加または削除することをpopと呼ぶ.stackの特徴は、LIFOを使用してデータを管理することです.
LIFO - Last In First Out

LIFOはCSだけでなく、多くの分野で使われています!その内容と同じです例えば、管理調達において、最近生成された製品に不良品が発生したと仮定する.では、最近陳列されている商品から一つ一つ取り除かなければなりません.つまり、LIFOは私たちの言葉で後入先出です.
Stack by Swift JENERICで任意のタイプを入力できますArrayをstackとして使ってもいいと思いますが、コードで一度書いてみました。
struct Stack<T> {
    private var stack = [T]()
    
    public var isEmpty: Bool {
        return stack.isEmpty
    }
    
    public mutating func push(_ element: T) {
        stack.append(element)
    }
    
    public mutating func pop() -> T? {
        return isEmpty ? nil : stack.popLast()
    }
}

🍁 Queue


QueueはStackとは逆の構造であり、予想通りFIFOによってデータが管理される.
FIFO - First In First Out

FIFOは陳列されている商品の中で腰痛期を管理していると考えられています.期限切れの商品を陳列から取り除くためには、まず陳列されている商品を取り除きましょう.つまり、FIFOは私たちの言葉で先入先出です.
Queue by Swift JENERICで任意のタイプを入力できます
struct Queue<T> {
    private var queue = [T]()
    
    public var isEmpty: Bool {
        return queue.isEmpty
    }
    
    public mutating func enqueue(_ element: T) {
        queue.append(element)
    }
    
    public mutating func dequeue() -> T? {
        return isEmpty ? nil : queue.removeFirst()
    }
}