JosephCha의 개발일지

스택 본문

알고리즘 및 자료구조

스택

JosephCha 2022. 4. 20. 16:53
반응형

정의

  • 스택은 LIFO(Last In, Fisrt Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따름
  • 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()
    }
}

코드 참고: https://babbab2.tistory.com/84?category=908011

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

백준/2920번/음계 문제  (0) 2022.07.26
  (0) 2022.04.20
이진탐색  (0) 2022.04.20
병합정렬  (0) 2022.04.20
동적 계획법(DP)  (0) 2022.02.24
Comments