CS, Data Structure - Stack, Queue
5847 ワード
🧐 データ構造において,線形構造における代表的なStackとQueueについてまとめた.
Stackは、末尾にのみデータを追加または削除するデータ構造であり、pushまたはpushにデータを追加または削除することをpopと呼ぶ.stackの特徴は、LIFOを使用してデータを管理することです.
LIFOはCSだけでなく、多くの分野で使われています!その内容と同じです例えば、管理調達において、最近生成された製品に不良品が発生したと仮定する.では、最近陳列されている商品から一つ一つ取り除かなければなりません.つまり、LIFOは私たちの言葉で後入先出です.
QueueはStackとは逆の構造であり、予想通りFIFOによってデータが管理される.
FIFOは陳列されている商品の中で腰痛期を管理していると考えられています.期限切れの商品を陳列から取り除くためには、まず陳列されている商品を取り除きましょう.つまり、FIFOは私たちの言葉で先入先出です.
🍁 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()
}
}
Reference
この問題について(CS, Data Structure - Stack, Queue), 我々は、より多くの情報をここで見つけました https://velog.io/@idoyoung/CS-Data-Structure-Stack-Queueテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol