Stack with Swift

이원희·2020년 12월 9일
0

🧰 DataStructure

목록 보기
6/9
post-thumbnail

프로젝트를 진행하면서 Stack을 구현할 일이 있어 포스팅을 남긴다!
(JAVA는 언어 기본으로 Stack을 지원해줘서 따로 포스팅하지 않을 예정이다.)

Stack에 대해 궁금하다면 여기서 확인할 수 있다.

여러 타입을 stack에 넣을 예정이라 제네릭을 사용했다.
removeAll()은 프로젝트에서 필요해서 추가로 구현했다.

stack을 구현하기 전에는 class로 구성하려했는데 이런저런 이유로 struct로 결정했다.
이 부분은 struct vs class에서 다뤄보겠다.
(사실 포스팅하려고 한지 꽤됨...)

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

0개의 댓글