개발하자 중엽아
  • [선형 자료구조] 스택(Stack)
    2024년 08월 12일 13시 39분 47초에 업로드 된 글입니다.
    작성자: 이중엽

    스택이란?

    LIFO(Last In First Out)으로 가장 마지막으로 삽입된 요소가 가장 먼저 제거되는 구조를 가진다.

    이러한 특징을 가진 스택은 Push와 Pop을 기본 연산을 가지게 된다.

     

    Push

    데이터를 스택 맨 위에 쌓는 연산

     

    Pop

    스택 맨 위에 데이터를 제거하고 반환하는 연산

     

    사용 사례

    iOS에서 실제로 UINavigationController는 Push, Pop을 통해 뷰컨트롤러들의 스택을 관리하며 화면을 나타낸다.

     

    그 외에도 DFS를 사용할 때 깊이 탐색을 위해 Stack을 사용하여 재귀 호출을 대체할 수 있다.

     

    구현

    struct Stack<T> {
        private var elements: [T] = []
        init() { }
        
        mutating func push(_ element: T) {
            elements.append(element)
        }
        
        mutating func pop() -> T? {
            return elements.popLast()
        }
        
        mutating func peek() -> T? {
            return elements.last
        }
        
        var isEmpty: Bool {
            return elements.isEmpty
        }
        
        var count: Int {
            return elements.count
        }
    }

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

    [선형 자료구조] 큐(Queue)  (0) 2024.08.12
    [선형 자료구조] 링크드 리스트  (0) 2024.08.10
    [선형 자료구조] 배열(선형 리스트)  (0) 2024.08.08
    댓글