배열(Array)
동일한 타입의 데이터를 순서대로 저장하는 구조
var numbers = [1, 2, 3, 4, 5]
numbers.append(6)
print(numbers[0]) // 1
딕셔너리(Dictionary)
키-값 쌍을 저장하는 자료구조
var student: [String: Any] = ["name": "춘장", "age": 4]
print(student["name"]) // 춘장
스택(Stack)
LIFO(Last-In, First-Out) 방식으로 동작하는 자료구조
struct Stack<T> {
private var elements: [T] = []
mutating func push(_ item: T) {
elements.append(item)
}
mutating func pop() -> T? {
return elements.popLast()
}
}
var stack = Stack<Int>()
stack.push(10)
stack.push(20)
print(stack.pop()!) // 20
큐(Queue)
FIFO(First-In, First-Out) 방식으로 동작하는 자료구조
struct Queue<T> {
private var elements: [T] = []
mutating func enqueue(_ item: T) {
elements.append(item)
}
mutating func dequeue() -> T? {
return elements.isEmpty ? nil : elements.removeFirst()
}
}
var queue = Queue<String>()
queue.enqueue("A")
queue.enqueue("B")
print(queue.dequeue()!) // "A"