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

[자료구조/Swift] 우선순위 큐 (Priority Queue)

dev_zoe 2023. 3. 26. 16:18
반응형

우선순위 큐(Priority Queue) 란?

기존의 큐(Queue)가 선입선출(FIFO, First-In, First-Out) 구조였다면
우선순위 큐는 우선순위가 높은 데이터가 먼저 선출되는 구조의 자료구조이다.

주로 우선순위 큐는 최소값/최대 값부터 먼저 빠져나오는 힙을 사용하여 구현한다.

힙 포스팅 참고

 

Swift로 우선순위 큐 구현하기

최소힙/최대힙 원리를 알고 구현했으면 그걸 그대로 가져오기만 하면 된다.

import Foundation

struct PriorityQueue<T: Comparable> {
    var heap = Heap<T>()
    
    var count : Int {
        return heap.count
    }
    
    var isEmpty : Bool {
        return heap.isEmpty
    }
    
    mutating func pop() -> T? {
        return heap.pop()
    }
    
    mutating func insert(_ element: T) {
        heap.insert(element)
    }
}

 

 

reference

https://jeonyeohun.tistory.com/327

반응형