-
[알고리즘] 우선순위 큐 & 힙IT&컴퓨터공학/자료구조&알고리즘 2021. 1. 10. 12:37
큐 ( queue ) : 먼저 들어간 데이터가 먼저나오는 FIFO 구조의 자료구조
우선순위 큐 ( priority queue ) : 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 자료구조
구현하는 3가지 방법
1. 배열을 기반으로 구현
2. 연결리스트를 기반으로 구현
3. 힙을 이용하여 구현 - 가장 효율적임
힙 : '이진트리 ' 중에서도 '완전 이진 트리'
최대힙 : 부모노드 > 자식노드
최소힙 : 자식노드 > 부모노드
C++ 의 priority_queue 의 구조
(1) push(1), push(2). 현재 가장 큰 수: 2(top)
(2) push(3). 현재 가장 큰 수: 3(top)
(3) push(9). 현재 가장 큰 수: 9(top)
(4) push(8). 현재 가장 큰 수: 9(top)
(5) pop(). 현재 가장 큰 수: 8(top)
C++ 을 이용한 priority_queue
priority_queue< int, vector<int>, less<int> > pq;
기본으로는 최대힙 !
less<int> 대신 greater<int> 사용하면 : 최소힙
'IT&컴퓨터공학 > 자료구조&알고리즘' 카테고리의 다른 글
[알고리즘] 순열 알고리즘 - C++ 구현 (0) 2021.01.10 [알고리즘]Level2 ) 더 맵게 - C++ (0) 2021.01.10 [알고리즘] Level 2 ) 가장 큰수 - C++ (0) 2021.01.09 [알고리즘]C++로 구현한 bfs (0) 2021.01.09 [알고리즘] Level2 ) 타겟넘버 C++ 구현 ( DFS 이용 ) (0) 2021.01.07 댓글