PHP SPL標準ライブラリのデータ構造ヒープ(SplHeap)の簡単な使用例


ヒープ(Heap)は、優先キューを実現するために設計されたデータ構造であり、二叉ヒープ(二叉樹の一種)を構築することによって実現される。ルートノードの最大のヒープは最大ヒープまたは大きいルートヒープと呼ばれ、ルートノードの最小のヒープは最小ヒープまたは小さなルートヒープと呼ばれています。二叉の山は並べ替えにもよく使われます。
最小ヒープ(任意のノードの優先度はそのサブノードより小さくない)

PHP SplHeapの実装を参照してください。

それは明らかに抽象的なクラスで、最大の山(SplMaxHeap)と最小の山(SplMinHeap)はそれを引き継いで実現されます。一番山と一番小さい山は別の方法がありません。
SplHeapの簡単な使用は以下の通りです。

class MySimpleHeap extends SplHeap
{
  //compare()             ,          
  public function compare( $value1, $value2 ) {
    return ( $value1 - $value2 );
  }
}
 
$obj = new MySimpleHeap();
$obj->insert( 4 );
$obj->insert( 8 );
$obj->insert( 1 );
$obj->insert( 0 );
 
echo $obj->top(); //8
echo $obj->count(); //4
 
foreach( $obj as $number ) {
 echo $number;
}