PHP Deque Functions
The Deque is a sequence of values in a contiguous buffer that can grow and shrink automatically. It is a common abbreviation of double-ended queue and can be used internally by Ds\Queue.
Two-pointers can be used to keep track of a head and tail. The pointers can wrap around the end of a buffer that avoids the need to move other values around to make room. This can make a shift and unshift very fast.
Accessing a value by index can require a translation between an index and its corresponding position in the buffer: ((head + position) % capacity).
Strengths
- Supports array syntax (square brackets).
- Uses less overall memory than an array for the same number of values.
- Automatically frees allocated memory when its size drops low enough.
- get(), set(), push(), pop(), shift(), and unshift() are all O(1).
Weaknesses
- Capacity must be a power of 2.
- insert() and remove() are O(n).
List of Functions
Below of the list of functions provided by the the Deque class −
| Sr.No | Function & Description |
|---|---|
| 1 |
This function can allocate enough memory for a required capacity. |
| 2 |
This function can update all values by applying a callback function to each value. |
| 3 |
This function can return the current capacity. |
| 4 |
This function can remove all values from the deque. |
| 5 |
This function can determine if the deque contains given values. |
| 6 | Ds\Deque::__construct() Function This function can create a new instance. |
| 7 |
This function can return a shallow copy of the deque. |
| 8 |
This function can be used to get the number of elements in the Deque. |
| 9 |
This function can create a new deque by using the callable to determine which values to include. |
| 10 |
This function can attempt to find a value's index. |
| 11 |
This function can return the first value in the deque. |
| 12 |
This function can return the value at a given index. |
| 13 |
This function can insert the values at a given index. |
| 14 |
This function can return whether the deque is empty. |
| 15 |
This function can join all values together as a string. |
| 16 | Ds\Deque::jsonSerialize() Function This function can return a representation that can be converted to JSON. |
| 17 |
This function can return the last value. |
| 18 |
This function can return the result of applying a callback to each value. |
| 19 |
This function can return the result of adding all given values to the deque. |
| 20 |
This function can remove and return the last value. |
| 21 |
This function can add values to an end of the deque. |
| 22 |
This function can reduce the deque to a single value using a callback function. |
| 23 |
This function can remove and return a value by index. |
| 24 |
This function can reverse the deque in-place. |
| 25 |
This function can return a reversed copy. |
| 26 |
This function can rotate the deque by a given number of rotations. |
| 27 |
This function can update the value at a given index. |
| 28 |
This function can remove and return the first value. |
| 29 |
This function can return the sub-deque of a given range. |
| 30 |
This function can sort the deque in-place. |
| 31 |
This function can return a sorted copy. |
| 32 |
This function can return the sum of all values in the deque. |
| 33 |
This function can convert the deque to an array. |
| 34 |
This function can add values to front of the deque. |