728x90
/* Queue , Priority Queue */
Queue 는 FIFO 형식으로 먼저 넣은 데이터가 먼저 나오는 구조입니다.
Priority Queue 는 넣은 데이터의 순서와 상관없이 우선순위가 높은 데이터가 먼저 나옵니다.
/* Priority Queue의 구조 */
Heap 구조와 동일하다. 완전 이진트리 구조이다. 편의성을 위해 Array로 구현. (0번 인덱스는 사용 X)
MaxHeap 과 MinHeap 이 있다. (root node의 값이 max, min 인지에 갈린다)
/* Priority Queue - PUSH */
190을 PUSH 하면
마지막 인덱스에 저장한다.
부모노드의 크기와 비교하여 노드 구조를 바꾼다.
/* Priority Queue - POP */
root 노드의 값을 pop하고 마지막 인덱스인 100 노드를 root에 위치시킨다.
100이 자식의 노드보다 작으므로 자식 노드들 중에서 큰 값과 swap 한다.
해당 작업을 반복한다
/* 시간복잡도 */
push, pop 모두 O(log n)의 시간복잡도를 가진다.
728x90
'CS지식' 카테고리의 다른 글
[운영체제] Paging 과 Multi-Level Paging (0) | 2024.08.27 |
---|---|
[운영체제] 메모리 가상화 - Segmentation (0) | 2024.08.22 |
[운영체제] Limited Direct Execution (0) | 2024.08.17 |
[운영체제] 가상화에 대한 간단한 정리 (3) | 2024.07.22 |
[CS] 다익스트라 알고리즘 (0) | 2024.06.06 |