Fonctions PHP Deque

Le Deque est une séquence de valeurs dans un tampon contigu qui peut croître et se réduire automatiquement. Il s'agit d'une abréviation courante de «file d'attente double» et peut être utilisée en interne par Ds \ Queue.

Deux pointeurs peuvent être utilisés pour suivre une tête et une queue. Les pointeurs peuvent s'enrouler autour de la fin d'un tampon, ce qui évite d'avoir à déplacer d'autres valeurs pour faire de la place. Cela peut faire un changement et un changement de rapport très rapidement.

L'accès à une valeur par index peut nécessiter une translation entre un index et sa position correspondante dans le buffer: ((head + position)% capacity).

Forces

  • Prend en charge la syntaxe de tableau (crochets).
  • Utilise moins de mémoire globale qu'un tableau pour le même nombre de valeurs.
  • Libère automatiquement la mémoire allouée lorsque sa taille diminue suffisamment.
  • get (), set (), push (), pop (), shift () et unshift () sont tous O (1).

Faiblesses

  • La capacité doit être une puissance de 2.
  • insert () et remove () sont O (n).

Syntaxe

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 prédéfinies

Ds \ Deque :: MIN_CAPACITY

Sr. Non Description de la fonction
1

Fonction Ds \ Deque :: allocate ()

Cette fonction peut allouer suffisamment de mémoire pour une capacité requise.

2

Fonction Ds \ Deque :: apply ()

Cette fonction peut mettre à jour toutes les valeurs en appliquant une fonction de rappel à chaque valeur.

3

Fonction Ds \ Deque :: capacity ()

Cette fonction peut renvoyer la capacité actuelle.

4

Fonction Ds \ Deque :: clear ()

Cette fonction peut supprimer toutes les valeurs du deque.

5

Fonction Ds \ Deque :: contains ()

Cette fonction peut déterminer si le deque contient des valeurs données.

6

Fonction Ds \ Deque :: __ construct ()

Cette fonction peut créer une nouvelle instance.

sept

Fonction Ds \ Deque :: copy ()

Cette fonction peut renvoyer une copie superficielle du deque.

8

Fonction Ds \ Deque :: count ()

Cette fonction peut être utilisée pour obtenir le nombre d'éléments dans le Deque.

9

Fonction Ds \ Deque :: filter ()

Cette fonction peut créer un nouveau deque en utilisant l'appelable pour déterminer les valeurs à inclure.

dix

Fonction Ds \ Deque :: find ()

Cette fonction peut tenter de trouver l'index d'une valeur.

11

Fonction Ds \ Deque :: first ()

Cette fonction peut renvoyer la première valeur du deque.

12

Fonction Ds \ Deque :: get ()

Cette fonction peut renvoyer la valeur à un index donné.

13

Fonction Ds \ Deque :: insert ()

Cette fonction peut insérer les valeurs à un index donné.

14

Fonction Ds \ Deque :: isEmpty ()

Cette fonction peut retourner si le deque est vide.

15

Fonction Ds \ Deque :: join ()

Cette fonction peut joindre toutes les valeurs sous forme de chaîne.

16

Fonction Ds \ Deque :: jsonSerialize ()

Cette fonction peut renvoyer une représentation qui peut être convertie en JSON.

17

Fonction Ds \ Deque :: last ()

Cette fonction peut renvoyer la dernière valeur.

18

Fonction Ds \ Deque :: map ()

Cette fonction peut renvoyer le résultat de l'application d'un rappel à chaque valeur.

19

Fonction Ds \ Deque :: merge ()

Cette fonction peut retourner le résultat de l'ajout de toutes les valeurs données au deque.

20

Fonction Ds \ Deque :: pop ()

Cette fonction peut supprimer et renvoyer la dernière valeur.

21

Fonction Ds \ Deque :: push ()

Cette fonction peut ajouter des valeurs à une fin de la deque.

22

Fonction Ds \ Deque :: reduction ()

Cette fonction peut réduire le deque à une valeur unique à l'aide d'une fonction de rappel.

23

Fonction Ds \ Deque :: remove ()

Cette fonction peut supprimer et renvoyer une valeur par index.

24

Fonction Ds \ Deque :: reverse ()

Cette fonction peut inverser le deque en place.

25

Fonction Ds \ Deque :: reverse ()

Cette fonction peut renvoyer une copie inversée.

26

Fonction Ds \ Deque :: rotate ()

Cette fonction peut faire tourner le deque d'un nombre donné de tours.

27

Fonction Ds \ Deque :: set ()

Cette fonction peut mettre à jour la valeur à un index donné.

28

Fonction Ds \ Deque :: shift ()

Cette fonction peut supprimer et renvoyer la première valeur.

29

Fonction Ds \ Deque :: slice ()

Cette fonction peut retourner le sous-deque d'une plage donnée.

30

Fonction Ds \ Deque :: sort ()

Cette fonction peut trier le deque sur place.

31

Fonction Ds \ Deque :: sorted ()

Cette fonction peut renvoyer une copie triée.

32

Fonction Ds \ Deque :: sum ()

Cette fonction peut renvoyer la somme de toutes les valeurs dans le deque.

33

Fonction Ds \ Deque :: toArray ()

Cette fonction peut convertir le deque en tableau.

34

Fonction Ds \ Deque :: unshift ()

Cette fonction peut ajouter des valeurs au début du deque.