μ€ν, ν
ν (Queue)
- νμ μ€νμ λ°μ΄ν°μ λν κ°λ μ΄λ€.
- Swiftμμλ λ°λ‘ νμ μ€νμ μ§μνμ§ μμΌλ©΄ Array λ±μ μ΄μ©ν΄μ μ§μ ꡬνν μ μλ€.
- First-In-First-Out (FIFO)
- λ¨Όμ λ€μ΄μ¨ κ°μ λ¨Όμ λ΄λ³΄λ΄λ ꡬ쑰
/*
<T>λ?
μ λ€λ¦μ΄λΌλ κ²μΈλ°, νλμ νμ
μΌλ‘ κ΅νλμ§ μκ³
νμ
μ μ μ°νκ² μ½λλ₯Ό μμ±ν μ μλ κΈ°λ₯
*/
// struct - λ΄λΆ μμ±λ€μ κ°μΈκ³ μλ ν
struct Queue<T> {
private var queue: [T] = []
public var count: Int {
return queue.count
}
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()
}
}
var queue = Queue<Int>()
queue.enqueue(10)
queue.enqueue(20)
queue.dequeue() // 10
μ€ν (Stack)
- Last-In-First-Out (LIFO)
- λ¨Όμ λ€μ΄μ¨ κ°μ κ°μ₯ λ§μ§λ§μ λ΄λ³΄λ΄λ ꡬ쑰
struct Stack<T> {
private var stack: [T] = [] // μ²μ μ€νμ λΉ λ°°μ΄λ‘ μμ
public var count: Int {
return stack.count
}
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()
}
}
var stack = Stack<Int>()
stack.push(10)
stack.push(20)
stack.pop() // 20
'π Today I Learned > Swift λ¬Έλ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] κ°μ²΄ μ§ν₯ (0) | 2023.12.07 |
---|---|
[Swift] λ°°μ΄, μΈνΈ, λμ λ리 (0) | 2023.12.07 |
[Swift] μ΅μ λ (0) | 2023.12.06 |
[Swift] 쑰건문과 λ°λ³΅λ¬Έ (0) | 2023.12.06 |
[Swift] μ°μ°μ (0) | 2023.12.06 |