반응형
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
반응형
'🖥️ CS, 개발상식 > 자료구조' 카테고리의 다른 글
[자료구조/Swift] 덱(Dequeue) (0) | 2023.03.16 |
---|---|
[자료구조/Swift] 큐(Queue) (0) | 2023.03.15 |
[자료구조/C] 스택(Stack) (0) | 2020.09.17 |
[자료구조/C] 선택 정렬(selection sort) (0) | 2020.07.30 |
[자료구조/C] 동적 메모리 할당(dynamic memory allocation) (0) | 2020.07.29 |