首頁  >  文章  >  後端開發  >  PHP SPL之資料結構堆(SplHeap)簡單實例

PHP SPL之資料結構堆(SplHeap)簡單實例

*文
*文原創
2017-12-27 09:52:111590瀏覽

本文主要介紹了PHP SPL標準庫之資料結構堆(SplHeap)簡單使用實例,本文也同時講解了最大堆(SplMaxHeap)、最小堆(SplMinHeap)的相關知識。希望對大家有幫助。

堆(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;
}

相關推薦:

PHP SPL的使用

PHP SPL被遺落的寶石_PHP教學

##PHP SPL使用方法和他的威力_PHP教程

#

以上是PHP SPL之資料結構堆(SplHeap)簡單實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn