本文主要介紹了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之資料結構堆(SplHeap)簡單實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!