Funciones PHP Deque
El Deque es una secuencia de valores en un búfer contiguo que puede crecer y reducirse automáticamente. Es una abreviatura común de "cola de dos extremos" y puede ser utilizada internamente por Ds \ Queue.
Se pueden usar dos punteros para realizar un seguimiento de la cabeza y la cola. Los punteros pueden envolver el final de un búfer que evita la necesidad de mover otros valores para hacer espacio. Esto puede hacer un cambio y un cambio muy rápido.
El acceso a un valor por índice puede requerir una traducción entre un índice y su posición correspondiente en el búfer: ((cabeza + posición)% de capacidad).
Fortalezas
- Admite la sintaxis de matriz (corchetes).
- Utiliza menos memoria general que una matriz para el mismo número de valores.
- Libera automáticamente la memoria asignada cuando su tamaño cae lo suficientemente bajo.
- get (), set (), push (), pop (), shift () y unshift () son todos O (1).
Debilidades
- La capacidad debe ser una potencia de 2.
- insertar () y eliminar () son O (n).
Sintaxis
Ds\Deque implements Ds\Sequence {
/* Constants */
const int MIN_CAPACITY = 8 ;
/* Methods */
public void allocate( int $capacity )
public void apply( callable $callback )
public int capacity( void )
public void clear( void )
public bool contains([ mixed $...values ] )
public Ds\Deque copy( void )
public Ds\Deque filter([ callable $callback ] )
public mixed find( mixed $value )
public mixed first( void )
public mixed get( int $index )
public void insert( int $index [, mixed $...values ] )
public bool isEmpty( void )
public string join([ string $glue ] )
public mixed last( void )
public Ds\Deque map( callable $callback )
public Ds\Deque merge( mixed $values )
public mixed pop( void )
public void push([ mixed $...values ] )
public mixed reduce( callable $callback [, mixed $initial ] )
public mixed remove( int $index )
public void reverse( void )
public Ds\Deque reversed( void )
public void rotate( int $rotations )
public void set( int $index , mixed $value )
public mixed shift( void )
public Ds\Deque slice( int $index [, int $length ] )
public void sort([ callable $comparator ] )
public Ds\Deque sorted([ callable $comparator ] )
public number sum( void )
public array toArray( void )
public void unshift([ mixed $values ] )
}
Constantes predefinidas
Ds \ Deque :: MIN_CAPACITY
No Señor | Función descriptiva |
---|---|
1 | Función Ds \ Deque :: allocate () Esta función puede asignar suficiente memoria para una capacidad requerida. |
2 | Función Ds \ Deque :: apply () Esta función puede actualizar todos los valores aplicando una función de devolución de llamada a cada valor. |
3 | Función Ds \ Deque :: capacity () Esta función puede devolver la capacidad actual. |
4 | Función Ds \ Deque :: clear () Esta función puede eliminar todos los valores de la deque. |
5 | Función Ds \ Deque :: contains () Esta función puede determinar si la deque contiene valores dados. |
6 | Función Ds \ Deque :: __ construct () Esta función puede crear una nueva instancia. |
7 | Esta función puede devolver una copia superficial de la deque. |
8 | Función Ds \ Deque :: count () Esta función se puede utilizar para obtener el número de elementos del Deque. |
9 | Función Ds \ Deque :: filter () Esta función puede crear una nueva deque usando el invocable para determinar qué valores incluir. |
10 | Esta función puede intentar encontrar el índice de un valor. |
11 | Función Ds \ Deque :: first () Esta función puede devolver el primer valor de la deque. |
12 | Esta función puede devolver el valor en un índice dado. |
13 | Función Ds \ Deque :: insert () Esta función puede insertar los valores en un índice dado. |
14 | Función Ds \ Deque :: isEmpty () Esta función puede devolver si el deque está vacío. |
15 | Esta función puede unir todos los valores como una cadena. |
dieciséis | Función Ds \ Deque :: jsonSerialize () Esta función puede devolver una representación que se puede convertir a JSON. |
17 | Esta función puede devolver el último valor. |
18 | Esta función puede devolver el resultado de aplicar una devolución de llamada a cada valor. |
19 | Función Ds \ Deque :: merge () Esta función puede devolver el resultado de sumar todos los valores dados a la deque. |
20 | Esta función puede eliminar y devolver el último valor. |
21 | Esta función puede agregar valores al final de la deque. |
22 | Función Ds \ Deque :: reduce () Esta función puede reducir la deque a un solo valor usando una función de devolución de llamada. |
23 | Función Ds \ Deque :: remove () Esta función puede eliminar y devolver un valor por índice. |
24 | Función Ds \ Deque :: reverse () Esta función puede revertir el deque in situ. |
25 | Función Ds \ Deque :: reversed () Esta función puede devolver una copia invertida. |
26 | Función Ds \ Deque :: rotate () Esta función puede rotar el deque en un número determinado de rotaciones. |
27 | Esta función puede actualizar el valor en un índice dado. |
28 | Función Ds \ Deque :: shift () Esta función puede eliminar y devolver el primer valor. |
29 | Función Ds \ Deque :: slice () Esta función puede devolver la subdeque de un rango dado. |
30 | Esta función puede ordenar la deque in situ. |
31 | Función Ds \ Deque :: sorted () Esta función puede devolver una copia ordenada. |
32 | Esta función puede devolver la suma de todos los valores de la deque. |
33 | Función Ds \ Deque :: toArray () Esta función puede convertir la deque en una matriz. |
34 | Función Ds \ Deque :: unshift () Esta función puede agregar valores al frente de la deque. |