Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ruby설치
- n번째 원소까지
- Error installing cocoapods
- 문자열 정렬하기 (1)
- 연산자
- 스파르타 코딩클럽 내일배움캠프
- 프로그래머스 n번째 원소까지
- 스페인어
- 프로그래머스 문자열 정렬하기 (1)
- 스파르타코딩캠프
- cocoapods 설치 오류
- 프로그래머스 조건에 맞게 수열 변경하기 3
- array
- continue
- 프로그래머스
- 프로그래머스 주사위 게임1
- 주사위 게임1
- 문자열 붙여서 출력하기
- swift
- 프로그래머스 최댓값 만들기(2)
- 조건에 맞게 수열 변경하기 3
- 프로그래머스 배열 만들기1
- 프로그래머스 문자열 붙여서 출력하기
- 프로그래머스 n의 배수 고르기
- 프로그래머스 암호 해독
- Til
- 프로그래머스 자동커밋
- 배열 만들기1
- Break
- 객체지향
Archives
- Today
- Total
dev._.note
[Swift] Queue와 Stack 본문
큐와 스택은 데이터에 대한 개념이며 Swift에서는 따로 큐와 스택을 지원하지 않으면 Array 등을 이용해서 직접 구현할 수 있음.
📌 Queue
- First-In-First-Out (FIFO)
- 먼저 들어온 값을 먼저 내보내는 구조입니다.
- ex ) 버블티 빨대
/*
<T> 에 대해서는 추후 배울 예정
제네릭이라는 것인데, 하나의 타입으로 국한되지 않고
타입에 유연하게 코드를 작성할 수 있는 기능입니다.
*/
struct Queue<T> {
private var queue: [T] = []
public var count: Int {
return queue.count
}
public var isEmpty: Bool {
return queue.isEmpty
}
public mutating func enqueue(_ element: T) {
queue.append(element)
}
public mutating func dequeue() -> T? {
return isEmpty ? nil : queue.removeFirst()
}
}
var queue = Queue<Int>()
queue.enqueue(10)
queue.enqueue(20)
queue.dequeue() // 10
📌 stack
- Last-In-First-Out (LIFO)
- 먼저 들어온 값을 가장 마지막에 내보내는 구조.
- ex ) 구덩이, iOS 개발시 Navigation
/*
<T> 에 대해서는 추후 배울 예정
제네릭이라는 것인데, 하나의 타입으로 국한되지 않고
타입에 유연하게 코드를 작성할 수 있는 기능입니다.
*/
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()
}
}
var stack = Stack<Int>()
stack.push(10)
stack.push(20)
stack.pop() // 20
'Dev > SWIFT' 카테고리의 다른 글
[Swift] 객체지향(OOP/Object-Oriented-Programming) (0) | 2023.11.29 |
---|---|
[Swift] Array와 Set, Dictionary (1) | 2023.11.29 |
[Swift] 연산자, 조건문과 반복문 (1) | 2023.11.28 |
[Swift] 데이터 타입 (0) | 2023.11.28 |
[Swift] 프로퍼티와 출력, 함수 (1) | 2023.11.27 |