본문 바로가기

Swift/자료구조

Swift 우선순위 큐(Priority Queue) 구현

우선순위 큐(Priority Queue)

  • 힙을 이용해서 가장 높은 우선순위에 있는 요소를 제일 처음에 위치시키는 자료구조이다.
  • 가장 우선순위가 제거되면, 그다음으로 높은 우선순위인 요소가 앞에 위치하게 된다.
  • 구현을 위해서 힙이 구현되어있어야 한다.
  • 우선순위큐의 삽입 삭제 시간복잡도는 O(logN)으로 일반 배열을 사용하는 것보다 빠르다.

 

힙 (Heap) Swift 구현

https://jenikeju.tistory.com/129

 

Swift 힙(Heap) 구현

Heap Heap이란 완전이진트리의 일종으로 우선순위 큐를 위해 만들어진 자료구조이다. 여러 가지의 값 중, 최댓값과 최솟값을 빠르게 찾아내기 위한 자료구조이다. 중복값을 허용한다. 완전이진트

jenikeju.tistory.com

 

 

우선순위 큐 구현코드

struct PriorityQueue<T: Comparable> {
    var heap: Heap<T>

    init(_ elements: [T] = [], _ sort: @escaping (T,T) -> Bool) {
        heap = Heap(elements: elements, sortFunction: sort)
    }

    var count: Int {
        return heap.count
    }

    var isEmpty:Bool {
        return heap.isEmpty
    }

    func top() -> T? {
        return heap.peek
    }

    mutating func clear() {
        while !heap.isEmpty {
            heap.remove()
        }
    }

    mutating func pop() -> T? {
        return heap.remove()
    }

    mutating func push(_ element: T) {
        heap.insert(node: element)
    }
}

'Swift > 자료구조' 카테고리의 다른 글

분리집합과 Union-Find Swift  (1) 2024.04.28
Swift 덱(Deque) 구현  (0) 2024.04.03
Swift 큐(Queue) 구현  (0) 2024.04.03
Swift 힙(Heap) 구현  (0) 2023.05.17
Swift 스택(Stack) 구현  (0) 2023.04.17