자료구조(수정 중)

o2k_iOS·2025년 2월 17일

큐 Queue

FIFO (First in First out) 구조

  • 선입선출되는 구조 ( ex.계산대에 줄을 서는대로 계산 )
struct Queue<T> {
    private var elements = [T]()
    
    mutating func enqueue(_ element: T) {
        elements.append(element)
    }
    
    mutating func dequeue() -> T? {
        return elements.isEmpty ? nil : elements.removeFirst()
    }
}

var myQueue = Queue<Int>()

myQueue.enqueue(10)
myQueue.dequeue()

예외 처리에 대해 고려하지 않은 Queue.

위의 예시 코드에서 추가되어야 할 사항

  • dequeue 할 때 시간 복잡도에 대한 고려가 필요함

Generic 타입을 사용해 어떤 타입의 데이터든 저장할 수 있게함.

append 메서드를 사용하여 Enqueue (시간복잡도 : O(1) )

https://developer.apple.com/documentation/swift/array/append(_:)

removeFirst 메서드를 사용하여 Dequeue ( 시간복잡도: O(n) )

https://developer.apple.com/documentation/swift/array/removefirst()

profile
느려도 조금씩 성장

0개의 댓글