在文档中说“将所有当前值向前移动”,虽然听起来复杂度应该是 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)