當前位置:
首頁 > 知識 > PHP SPL的常用數據結構

PHP SPL的常用數據結構

GIF/21K

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

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

PHP的SPL提供了些數據結構基本類型的實現,雖然我們可以使用傳統的變數類型來描述數據結構,例如用數組來描述堆棧(Strack)然後使用對應的方式 pop 和 push(array_pop()、array_push()),但你得時刻小心,因為畢竟它們不是專門用於描述數據結構的,一次誤操作就有可能破壞該堆棧。而SPL的 SplStack 對象則嚴格以堆棧的形式描述數據,並提供對應的方法。同時,這樣的代碼應該也能理解它在操作堆棧而非某個數組,從而能讓你的同伴更好的理解相應的代碼,並且它更快。

棧的實現

$stack = new SplStack();

//入棧

$stack->push( a );

$stack->push( b );

//出棧

echo $stack->pop();

echo $stack->pop();

隊列的實現

$queue = new SplQueue();

//入隊列

$queue->enqueue( a );

$queue->enqueue( b );

$queue->enqueue( c );

//出隊列

echo $queue->dequeue();

echo $queue->dequeue();

echo $queue->dequeue();

最小堆的實現

$heap = new SplMinHeap();

//插入到堆

$heap->insert( a );

$heap->insert( b );

//從堆中提取數據

echo $heap->extract();

echo $heap->extract();

固定長度的數組

$array = new SplFixedArray(5);

$array[1] = 5;

var_dump($array);

來源:本文由程序員之家整合自網路

編輯 | 碼哥

圖片源於網路,版權歸原作者所有


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員之家 的精彩文章:

蘋果首席設計師:iPhone X 耗時五年,設計要等技術趕上
程序媛的真實生活:寫的了代碼,賣的了萌
Jquery 常用選擇器總結
程序員的 18 個有趣的事實
C 之父獲得 2017 年法拉第獎

TAG:程序員之家 |