Stack

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 myStack = Stack<Int>()
myStack.push(10)
myStack.pop()

시간복잡도는 O(1)이다.

그런데 Swift에서는 배열의 append(), popLast()를 통해 배열을 Stack처럼 사용할 수 있다.

 

출처: https://babbab2.tistory.com/85 

반응형

'💻 CS > 자료구조' 카테고리의 다른 글

[Swift] 힙(Heap) 구현해보기  (0) 2023.04.11
[Swift] 그래프(Graph)  (0) 2023.03.29
[Swift] 덱 구현해보기  (0) 2023.03.29
[Swift] 큐(Queue) 구현하기  (0) 2023.03.24
메모리 구조  (0) 2023.03.23
JerryiOS