🖥️ CS, 개발상식/자료구조

[자료구조/Swift] 스택 (Stack)

dev_zoe 2023. 3. 14. 18:20
반응형

Swift로 직접 자료구조 구현하기 - 스택

스택 개념 설명과 C 언어 코드는? 여기를 참고해주세요!

혹시 틀린 부분이 있다면 지적해주시면 감사하겠습니다!


1) 뼈대잡기

- 스택에 담길 요소를 담은 배열 elements

- count는 스택의 크기로, 배열의 크기이며 isEmpty는 스택이 비어있는지 확인하는 변수로, pop 연산이나 peek 연산 수행 시 쓰인다.

struct Stack<T> {
  var elements: [T] = [] //제너릭으로 배열 생성
    
  var count : Int {
    return elements.count
  }
  
  var isEmpty : Bool {
    return elements.isEmpty
  }
}

 

2) 관련함수

- 스택에는 데이터를 추가하는 push(), 데이터를 꺼내오는 pop() 2가지 연산이 존재한다.

- 필자는 마지막 원소를 보기만하는 peek() 함수도 추가했다.

  mutating func push(_ element: T){
    elements.append(element)
  }

  mutating func pop() -> T? {
    return elements.popLast() //popLast()는 존재하지 않을 경우 nil return
  }

  func peek() -> T? {
    return elements.last //last가 없으면 nil return
  }
}

 

전체 코드 보기 -> https://github.com/yurrrri/Swift_DataStructure/blob/main/stack.swift

 

GitHub - yurrrri/Swift_DataStructure: Swift 알고리즘을 공부하다가 STL이 없어 직접 구현한다,,

Swift 알고리즘을 공부하다가 STL이 없어 직접 구현한다,,. Contribute to yurrrri/Swift_DataStructure development by creating an account on GitHub.

github.com

 

반응형