文件中寫道「將所有目前的值向前移動」,雖然聽起來複雜度像是 O(N),但我檢查了 https://github.com/php-ds/ext-ds/blob/master/src/ds/ds_deque.c#L366 的程式碼,實際上每個元素的複雜度是 O(1)(PECL ds >= 1.0.0)
Ds\Deque::unshift — 將值新增到雙向佇列的開頭
values要新增到雙向佇列開頭的值。
注意事項:
多個值將按照傳遞的順序新增。
沒有返回值。
範例 #1 Ds\Deque::unshift() 範例
<?php
$deque = new \Ds\Deque([1, 2, 3]);
$deque->unshift("a");
$deque->unshift("b", "c");
print_r($deque);
?>上述範例的輸出會類似以下
Ds\Deque Object
(
[0] => b
[1] => c
[2] => a
[3] => 1
[4] => 2
[5] => 3
)
文件中寫道「將所有目前的值向前移動」,雖然聽起來複雜度像是 O(N),但我檢查了 https://github.com/php-ds/ext-ds/blob/master/src/ds/ds_deque.c#L366 的程式碼,實際上每個元素的複雜度是 O(1)