PHP SPL標(biāo)準(zhǔn)庫之?dāng)?shù)據(jù)結(jié)構(gòu)堆(SplHeap)簡(jiǎn)單使用實(shí)例
堆(Heap)就是為了實(shí)現(xiàn)優(yōu)先隊(duì)列而設(shè)計(jì)的一種數(shù)據(jù)結(jié)構(gòu),它是通過構(gòu)造二叉堆(二叉樹的一種)實(shí)現(xiàn)。根節(jié)點(diǎn)最大的堆叫做最大堆或大根堆,根節(jié)點(diǎn)最小的堆叫做最小堆或小根堆。二叉堆還常用于排序(堆排序)。
如下:最小堆(任意節(jié)點(diǎn)的優(yōu)先級(jí)不小于它的子節(jié)點(diǎn))

看看PHP SplHeap的實(shí)現(xiàn):

顯然它是一個(gè)抽象類,最大堆(SplMaxHeap)和最小堆(SplMinHeap)就是繼承它實(shí)現(xiàn)的。最大堆和最小堆并沒有額外的方法
SplHeap的簡(jiǎn)單使用如下:
class MySimpleHeap extends SplHeap
{
//compare()方法用來比較兩個(gè)元素的大小,絕對(duì)他們?cè)诙阎械奈恢?
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標(biāo)準(zhǔn)庫之文件操作(SplFileInfo和SplFileObject)實(shí)例
- PHP SPL標(biāo)準(zhǔn)庫之?dāng)?shù)據(jù)結(jié)構(gòu)棧(SplStack)介紹
- 解析PHP SPL標(biāo)準(zhǔn)庫的用法(遍歷目錄,查找固定條件的文件)
- PHP SPL標(biāo)準(zhǔn)庫之SplFixedArray使用實(shí)例
- PHP標(biāo)準(zhǔn)庫(PHP SPL)詳解
- PHP SPL標(biāo)準(zhǔn)庫中的常用函數(shù)介紹
- PHP SPL標(biāo)準(zhǔn)庫之接口(Interface)詳解
- PHP使用標(biāo)準(zhǔn)庫spl實(shí)現(xiàn)的觀察者模式示例
- PHP標(biāo)準(zhǔn)庫 (SPL)——Countable用法示例
相關(guān)文章
Yii 實(shí)現(xiàn)數(shù)據(jù)加密和解密的示例代碼
這篇文章主要介紹了Yii 實(shí)現(xiàn)數(shù)據(jù)加密和解密的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
配置Apache2.2+PHP5+CakePHP1.2+MySQL5運(yùn)行環(huán)境
因?yàn)樽罱肞HP做個(gè)小東西,新學(xué)了PHP。結(jié)果學(xué)PHP只用了2個(gè)小時(shí),配置服務(wù)器卻用了兩天,郁悶得想罵人。為了避免以后忘掉,寫個(gè)博客留底。2009-04-04
php不使用插件導(dǎo)出excel的簡(jiǎn)單方法
這篇文章主要介紹了php不使用插件導(dǎo)出excel的簡(jiǎn)單方法,首先獲取需要導(dǎo)出的數(shù)據(jù)的數(shù)組,數(shù)組的格式在下面。之后就是定義文件名稱和需要導(dǎo)出的excel的樣式,最后就是循環(huán)數(shù)組,輸出數(shù)據(jù)了2014-03-03
PHP實(shí)現(xiàn)的英文名字全拼隨機(jī)排號(hào)腳本

