文件中寫道「將所有目前的值向前移動」,雖然聽起來複雜度像是 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)