445
Php編程
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);
來源:本文由程序員之家整合自網絡
編輯 | 碼哥
圖片源於網絡,版權歸原作者所有
最後更新:2017-10-09 02:47:12