배열을 이용한 우선순위 큐 구현하기
우선순위 큐는 데이터의 우선순위에 따라 접근할 수 있는 자료구조입니다. 이번에는 배열을 이용하여 우선순위 큐를 구현하는 방법에 대해 알아보겠습니다.
구현 방법
- 배열을 사용하여 우선순위 큐를 구현합니다.
- 각 요소의 우선순위를 기준으로 정렬된 배열을 유지합니다.
- 새로운 요소를 삽입할 때, 배열의 적절한 위치에 삽입하여 정렬된 상태를 유지합니다.
- 가장 우선순위가 높은 요소를 삭제할 때, 배열의 첫 번째 요소를 삭제하고 반환합니다.
예시 코드
다음은 배열을 이용한 우선순위 큐의 예시 코드입니다. 이 예시 코드는 Python 언어로 작성되었습니다.
class PriorityQueue:
def __init__(self):
self.queue = []
def is_empty(self):
return len(self.queue) == 0
def insert(self, item):
self.queue.append(item) # 요소를 끝에 추가
self.queue.sort(reverse=True) # 우선순위에 따라 정렬
def delete(self):
if self.is_empty():
return "Priority queue is empty"
return self.queue.pop(0) # 가장 앞의 요소를 삭제하고 반환
# 우선순위 큐 테스트
pq = PriorityQueue()
pq.insert(5)
pq.insert(2)
pq.insert(8)
print(pq.delete()) # 8 출력
print(pq.delete()) # 5 출력
위의 코드에서 PriorityQueue
클래스는 배열을 사용하여 우선순위 큐를 구현합니다. insert
메서드는 새로운 요소를 삽입하고, delete
메서드는 가장 우선순위가 높은 요소를 삭제하고 반환합니다.
요약
이렇게 배열을 이용하여 우선순위 큐를 구현할 수 있습니다. 배열을 사용하면 삽입과 삭제 연산의 시간 복잡도는 O(nlogn)으로 비효율적이지만, 간단하고 쉽게 구현할 수 있습니다.
#TechBlog #PriorityQueue