萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP SPL標准庫之數據結構堆(SplHeap)簡單使用實例

PHP SPL標准庫之數據結構堆(SplHeap)簡單使用實例

   這篇文章主要介紹了PHP SPL標准庫之數據結構堆(SplHeap)簡單使用實例,本文還同時講解了最大堆(SplMaxHeap)、最小堆(SplMinHeap)的相關知識,需要的朋友可以參考下

  堆(Heap)就是為了實現優先隊列而設計的一種數據結構,它是通過構造二叉堆(二叉樹的一種)實現。根節點最大的堆叫做最大堆或大根堆,根節點最小的堆叫做最小堆或小根堆。二叉堆還常用於排序(堆排序)。

  如下:最小堆(任意節點的優先級不小於它的子節點)

  看看PHP SplHeap的實現:

  顯然它是一個抽象類,最大堆(SplMaxHeap)和最小堆(SplMinHeap)就是繼承它實現的。最大堆和最小堆並沒有額外的方法

  SplHeap的簡單使用如下:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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; }
copyright © 萬盛學電腦網 all rights reserved