程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP SPL標准庫之數據結構堆(SplHeap)簡單使用實例

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

編輯:關於PHP編程

       這篇文章主要介紹了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; }
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved