스택: 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 자료구조로 선형구조이다 (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

+ Recent posts