💻 CS/자료구조

[Swift] 스택 구현해보기

JerryiOS 2023. 3. 29. 11:50

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 

반응형