Funções PHP Deque

O Deque é uma sequência de valores em um buffer contíguo que pode aumentar e diminuir automaticamente. É uma abreviatura comum de “fila dupla” e pode ser usada internamente por Ds \ Queue.

Dois ponteiros podem ser usados ​​para rastrear uma cabeça e uma cauda. Os ponteiros podem envolver o final de um buffer, o que evita a necessidade de mover outros valores para criar espaço. Isso pode fazer uma mudança e não mudar muito rapidamente.

Acessar um valor por índice pode exigir uma tradução entre um índice e sua posição correspondente no buffer: ((cabeça + posição)% capacidade).

Forças

  • Suporta sintaxe de array (colchetes).
  • Usa menos memória geral do que uma matriz para o mesmo número de valores.
  • Libera automaticamente a memória alocada quando seu tamanho diminui o suficiente.
  • get (), set (), push (), pop (), shift () e unshift () são todos O (1).

Fraquezas

  • A capacidade deve ser uma potência de 2.
  • insert () e remove () são O (n).

Sintaxe

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

Sr. Não Descrição da função
1

Função Ds \ Deque :: allocate ()

Esta função pode alocar memória suficiente para a capacidade necessária.

2

Função Ds \ Deque :: apply ()

Esta função pode atualizar todos os valores aplicando uma função de retorno de chamada a cada valor.

3

Função Ds \ Deque :: capacity ()

Esta função pode retornar a capacidade atual.

4

Função Ds \ Deque :: clear ()

Esta função pode remover todos os valores do deque.

5

Função Ds \ Deque :: contains ()

Esta função pode determinar se o deque contém valores dados.

6

Função Ds \ Deque :: __ construct ()

Esta função pode criar uma nova instância.

7

Função Ds \ Deque :: copy ()

Esta função pode retornar uma cópia superficial do deque.

8

Função Ds \ Deque :: count ()

Esta função pode ser usada para obter o número de elementos no Deque.

9

Função Ds \ Deque :: filter ()

Essa função pode criar um novo deque usando o chamável para determinar quais valores incluir.

10

Função Ds \ Deque :: find ()

Esta função pode tentar encontrar o índice de um valor.

11

Função Ds \ Deque :: first ()

Esta função pode retornar o primeiro valor no deque.

12

Função Ds \ Deque :: get ()

Esta função pode retornar o valor em um determinado índice.

13

Função Ds \ Deque :: insert ()

Esta função pode inserir os valores em um determinado índice.

14

Função Ds \ Deque :: isEmpty ()

Esta função pode retornar se o deque está vazio.

15

Função Ds \ Deque :: join ()

Esta função pode juntar todos os valores como uma string.

16

Função Ds \ Deque :: jsonSerialize ()

Esta função pode retornar uma representação que pode ser convertida em JSON.

17

Função Ds \ Deque :: last ()

Esta função pode retornar o último valor.

18

Função Ds \ Deque :: map ()

Esta função pode retornar o resultado da aplicação de um retorno de chamada a cada valor.

19

Função Ds \ Deque :: merge ()

Esta função pode retornar o resultado da adição de todos os valores fornecidos ao deque.

20

Função Ds \ Deque :: pop ()

Esta função pode remover e retornar o último valor.

21

Função Ds \ Deque :: push ()

Esta função pode adicionar valores ao final do deque.

22

Função Ds \ Deque :: reduce ()

Esta função pode reduzir o deque a um único valor usando uma função de retorno de chamada.

23

Função Ds \ Deque :: remove ()

Esta função pode remover e retornar um valor por índice.

24

Função Ds \ Deque :: reverse ()

Esta função pode reverter o deque no local.

25

Função Ds \ Deque :: reversed ()

Esta função pode retornar uma cópia revertida.

26

Função Ds \ Deque :: rotate ()

Esta função pode girar o deque por um determinado número de rotações.

27

Função Ds \ Deque :: set ()

Esta função pode atualizar o valor em um determinado índice.

28

Função Ds \ Deque :: shift ()

Esta função pode remover e retornar o primeiro valor.

29

Função Ds \ Deque :: slice ()

Esta função pode retornar o sub-deque de um determinado intervalo.

30

Função Ds \ Deque :: sort ()

Esta função pode classificar o deque no local.

31

Função Ds \ Deque :: Sort ()

Esta função pode retornar uma cópia classificada.

32

Função Ds \ Deque :: sum ()

Esta função pode retornar a soma de todos os valores no deque.

33

Função Ds \ Deque :: toArray ()

Esta função pode converter o deque em um array.

34

Função Ds \ Deque :: unshift ()

Esta função pode adicionar valores à frente do deque.