PHP中因為陣列太過強大,把這些資料結構都囊括進來了,所以不太需要去關注這些資料結構,久而久之這些概念也就淡化了。在PHP中有個擴充叫做Data Structures,這個擴充包含了這些常見的資料結構。今天就來介紹一下。
在PHP 中因為陣列太過強大,把這些資料結構都囊括進來了,所以不太需要去關注這些資料結構,久而久之這些概念也就淡化了,不是說PHP 沒有資料結構。
在 PHP 中有個擴充 Data Structures,這個擴充包含了這些常見的 資料結構。
優先權佇列PriorityQueue
雙端佇列Deque
#佇列FIFO(先進先出)
#堆疊LIFO(先進後出)
Map 字典
資料結構介紹$queue = new Ds\PriorityQueue(); $queue->allocate(8);
$queue = new Ds\PriorityQueue(); // 此时返回默认值 8 $queue->capacity();
$queue = new Ds\PriorityQueue(); $queue->push('value1', 1); $queue->push('value2', 2);
$queue = new Ds\PriorityQueue(); $queue->push('沙僧', 2); $queue->push('唐僧', 5); $queue->push('白龙马', 1); $queue->push('猪八戒', 3); $queue->push('孙悟空', 4); $cout = $queue->count(); for($i=0; $i<$cout; $i++) { echo $queue->pop(); echo PHP_EOL; }
唐僧 孙悟空 猪八戒 沙僧 白龙马
$deque = new Ds\Deque(); $deque->push(...['唐僧', '孙悟空', '猪八戒', '沙僧', '白龙马']); $clone = $deque->copy(); $count = $deque->count(); echo '头:'.$deque->first().PHP_EOL; echo '尾:'.$deque->last().PHP_EOL; echo '--- 从队尾开始 ----'.PHP_EOL; for($i=0; $i<$count; $i++) { echo $deque->pop(); echo PHP_EOL; } echo '--- 从队头开始 ----'.PHP_EOL; for($i=0; $i<$count; $i++) { echo $clone->shift(); echo PHP_EOL; }
头:唐僧 尾:白龙马 --- 从队尾开始 ---- 白龙马 沙僧 猪八戒 孙悟空 唐僧 --- 从队头开始 ---- 唐僧 孙悟空 猪八戒 沙僧 白龙马
$queue = new Ds\Queue(); $queue->push('唐僧'); $queue->push(...['孙悟空', '猪八戒']); $queue->push(['沙僧', '白龙马']); print_r($queue);
Ds\Queue Object ( [0] => 唐僧 [1] => 孙悟空 [2] => 猪八戒 [3] => Array ( [0] => 沙僧 [1] => 白龙马 ) )
$Stack = new Ds\Stack(); $Stack->push('唐僧'); $Stack->push(...['孙悟空', '猪八戒']); $Stack->push(...['沙僧', '白龙马']); $cout = $Stack->count(); for($i=0; $i<$cout; $i++) { echo $Stack->pop(); echo PHP_EOL; }
白龙马 沙僧 猪八戒 孙悟空 唐僧
推薦學習:php影片教學
#以上是詳細介紹php中的Data Structures擴展的詳細內容。更多資訊請關注PHP中文網其他相關文章!