• PHP Video Tutorials

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).

Syntax

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 ] )
}

Predefined Constants

Ds\Deque::MIN_CAPACITY

Sr.No Function & Description
1

Ds\Deque::allocate() Function

This function can allocate enough memory for a required capacity.

2

Ds\Deque::apply() Function

This function can update all values by applying a callback function to each value.

3

Ds\Deque::capacity() Function

This function can return the current capacity.

4

Ds\Deque::clear() Function

This function can remove all values from the deque.

5

Ds\Deque::contains() Function

This function can determine if the deque contains given values.

6

Ds\Deque::__construct() Function

This function can create a new instance.

7

Ds\Deque::copy() Function

This function can return a shallow copy of the deque.

8

Ds\Deque::count() Function

This function can be used to get the number of elements in the Deque.

9

Ds\Deque::filter() Function

This function can create a new deque by using the callable to determine which values to include.

10

Ds\Deque::find() Function

This function can attempt to find a value's index.

11

Ds\Deque::first() Function

This function can return the first value in the deque.

12

Ds\Deque::get() Function

This function can return the value at a given index.

13

Ds\Deque::insert() Function

This function can insert the values at a given index.

14

Ds\Deque::isEmpty() Function

This function can return whether the deque is empty.

15

Ds\Deque::join() Function

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

Ds\Deque::last() Function

This function can return the last value.

18

Ds\Deque::map() Function

This function can return the result of applying a callback to each value.

19

Ds\Deque::merge() Function

This function can return the result of adding all given values to the deque.

20

Ds\Deque::pop() Function

This function can remove and return the last value.

21

Ds\Deque::push() Function

This function can add values to an end of the deque.

22

Ds\Deque::reduce() Function

This function can reduce the deque to a single value using a callback function.

23

Ds\Deque::remove() Function

This function can remove and return a value by index.

24

Ds\Deque::reverse() Function

This function can reverse the deque in-place.

25

Ds\Deque::reversed() Function

This function can return a reversed copy.

26

Ds\Deque::rotate() Function

This function can rotate the deque by a given number of rotations.

27

Ds\Deque::set() Function

This function can update the value at a given index.

28

Ds\Deque::shift() Function

This function can remove and return the first value.

29

Ds\Deque::slice() Function

This function can return the sub-deque of a given range.

30

Ds\Deque::sort() Function

This function can sort the deque in-place.

31

Ds\Deque::sorted() Function

This function can return a sorted copy.

32

Ds\Deque::sum() Function

This function can return the sum of all values in the deque.

33

Ds\Deque::toArray() Function

This function can convert the deque to an array.

34

Ds\Deque::unshift() Function

This function can add values to front of the deque.

php_function_reference.htm
Advertisements