스택: 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 자료구조로 선형구조이다 (Last In First Out)
자료를 밀어넣는다: push
넣어둔 자료를 꺼낸다: pop
선입선출하는 큐와 반대로 스택은 후입선출을 지킨다.
Swift에서는 스택을 구현해서 사용해야 하지만
배열의 append, popLast 를 이용하면 굳이 구현하지않고 배열을 스택처럼 사용할 수 있다.
import Foundation
struct Stack<T> {
var elements: [T] = []
var count: Int {
return elements.count
}
var isEmpty: Bool {
return elements.isEmpty
}
mutating func pop() -> T? {
return elements.popLast()
}
mutating func push(_ element: T) {
element.append(element)
}
func pop() -> T? {
return elements.last
}
}
pop(): popLast() -> O(1)
push: append() -> O(1)
스택에서 꺼낼 원소가 없는경우 nil 을 출력한다.
'Swift > 자료구조' 카테고리의 다른 글
분리집합과 Union-Find Swift (1) | 2024.04.28 |
---|---|
Swift 덱(Deque) 구현 (0) | 2024.04.03 |
Swift 큐(Queue) 구현 (0) | 2024.04.03 |
Swift 우선순위 큐(Priority Queue) 구현 (0) | 2023.05.17 |
Swift 힙(Heap) 구현 (0) | 2023.05.17 |