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

Función Ds \ Deque :: copy ()

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

Función Ds \ Deque :: find ()

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

Función Ds \ Deque :: get ()

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

Función Ds \ Deque :: join ()

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

Función Ds \ Deque :: last ()

Esta función puede devolver el último valor.

18

Función Ds \ Deque :: map ()

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

Función Ds \ Deque :: pop ()

Esta función puede eliminar y devolver el último valor.

21

Función Ds \ Deque :: push ()

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

Función Ds \ Deque :: set ()

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

Función Ds \ Deque :: sort ()

Esta función puede ordenar la deque in situ.

31

Función Ds \ Deque :: sorted ()

Esta función puede devolver una copia ordenada.

32

Función Ds \ Deque :: sum ()

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.