라이브러리
[PHP] SplHeap::extract - 힙 상단에서 노드를 추출하고 분류합니다.
SplHeap::extract
PHP의 SplHeap 클래스는 힙 자료구조를 구현한 클래스입니다. 힙은 트리 자료구조 중 하나로, 자식 노드의 키 값이 부모 노드의 키 값보다 항상 큰(최대 힙) 또는 작은(최소 힙) 트리 구조입니다. SplHeap 클래스는 이 힙 자료구조를 구현한 클래스로, 여러 가지 메서드를 제공합니다.
SplHeap::extract
SplHeap 클래스의 extract 메서드는 힙에서 가장 큰(최대 힙) 또는 가장 작은(최소 힙) 요소를 제거하고 반환합니다. 이 메서드는 힙이 비어 있는 경우 NULL을 반환합니다.
예제
다음 예제는 SplHeap 클래스의 extract 메서드를 사용하는 방법을 보여줍니다.
#hostingforum.kr
php
// 최대 힙 생성
$heap = new SplMaxHeap();
// 힙에 요소 추가
$heap->insert(5);
$heap->insert(10);
$heap->insert(3);
$heap->insert(8);
$heap->insert(1);
// 힙에서 가장 큰 요소 제거
$max = $heap->extract();
// 제거한 요소 출력
echo "제거한 요소: $max
";
// 힙의 요소 출력
echo "힙의 요소:
";
foreach ($heap as $value) {
echo "$value
";
}
이 예제에서는 최대 힙을 생성하고 요소를 추가한 후, extract 메서드를 사용하여 힙에서 가장 큰 요소를 제거합니다. 제거한 요소와 힙의 요소를 출력합니다.
최소 힙
SplHeap 클래스의 extract 메서드는 기본적으로 최대 힙을 구현한 클래스입니다. 만약 최소 힙을 구현하고 싶다면, SplMinHeap 클래스를 사용하거나 SplHeap 클래스의 compare 메서드를 사용하여 비교 함수를 정의할 수 있습니다.
#hostingforum.kr
php
// 최소 힙 생성
$heap = new SplHeap();
$heap->setExtractFlags(SplHeap::EXTR_DATA);
// 비교 함수 정의
function compare($a, $b) {
return $a - $b;
}
// 힙에 요소 추가
$heap->setExtractFlags(SplHeap::EXTR_DATA);
$heap->insert(5);
$heap->insert(10);
$heap->insert(3);
$heap->insert(8);
$heap->insert(1);
// 힙에서 가장 작은 요소 제거
$min = $heap->extract();
// 제거한 요소 출력
echo "제거한 요소: $min
";
// 힙의 요소 출력
echo "힙의 요소:
";
foreach ($heap as $value) {
echo "$value
";
}
이 예제에서는 최소 힙을 구현하고 extract 메서드를 사용하여 힙에서 가장 작은 요소를 제거합니다. 제거한 요소와 힙의 요소를 출력합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.