
isEmpty 메서드는 Priority Queue가 비어 있는지 여부를 확인하는 메서드입니다. 그러나 이 메서드를 사용할 때, Priority Queue에 데이터를 추가한 후에도 isEmpty 메서드는 true를 반환하는 것을 확인했습니다.
이 경우, isEmpty 메서드는 왜 true를 반환하는 것일까요?
이 메서드는 Priority Queue에 데이터를 추가한 후에도 true를 반환하는 이유는, isEmpty 메서드는 Priority Queue의 데이터를 삭제하지 않고, 데이터의 존재 여부만을 확인하기 때문입니다.
Priority Queue에 데이터를 추가한 후, isEmpty 메서드를 호출하면, Priority Queue의 데이터가 삭제되지 않고, 데이터의 존재 여부만을 확인하기 때문에 true를 반환합니다.
isEmpty 메서드는 다음 상황에서 false를 반환합니다.
- Priority Queue가 비어 있을 때
- Priority Queue에 데이터가 추가된 후, isEmpty 메서드를 호출하기 전에 데이터를 삭제한 경우
예를 들어, 다음과 같은 코드를 작성할 수 있습니다.
#hostingforum.kr
cpp
DsPriorityQueue pq;
pq.isEmpty(); // true
pq.insert(10);
pq.isEmpty(); // true
pq.deleteMin(); // 데이터 삭제
pq.isEmpty(); // true
pq.insert(20);
pq.isEmpty(); // false
위의 코드를 통해, isEmpty 메서드는 Priority Queue가 비어 있을 때, Priority Queue에 데이터가 추가된 후 데이터를 삭제한 경우에 false를 반환하는 것을 확인할 수 있습니다.
2025-06-08 08:52