라이브러리

[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 메서드를 사용하여 힙에서 가장 작은 요소를 제거합니다. 제거한 요소와 힙의 요소를 출력합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 140 페이지

검색

게시물 검색