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);*