Skip to content

List Deque

ListDeque (Deque)

A deque implemented using python's list data structure

__len__(self) special

Get the total number of elements stored in the deque

>>> a_deque = ListDeque()
>>> a_deque.enqueue_last(1)
>>> len(a_deque)
1

Returns:

Type Description
int

count of elements in deque

Source code in deques/list_deque.py
def __len__(self) -> int:
    """Get the total number of elements stored in the deque

        >>> a_deque = ListDeque()
        >>> a_deque.enqueue_last(1)
        >>> len(a_deque)
        1

    :returns: count of elements in deque
    """
    return len(self.__data_store)

dequeue_first(self)

Remove first element of the deque and return it

>>> a_deque = ListDeque()
>>> a_deque.enqueue_last(1)
>>> a_deque.dequeue_first()
1

Returns:

Type Description
Any

first element of deque

Source code in deques/list_deque.py
def dequeue_first(self) -> Any:
    """Remove first element of the deque and return it

        >>> a_deque = ListDeque()
        >>> a_deque.enqueue_last(1)
        >>> a_deque.dequeue_first()
        1

    :return: first element of deque
    """
    if self.is_empty():
        raise Empty("Deque is empty")
    return self.__data_store.pop(0)

dequeue_last(self)

Remove last element of the deque and return it

>>> a_deque = ListDeque()
>>> a_deque.enqueue_last(1)
>>> a_deque.dequeue_last()
1

Returns:

Type Description
Any

last element of deque

Source code in deques/list_deque.py
def dequeue_last(self) -> Any:
    """Remove last element of the deque and return it

        >>> a_deque = ListDeque()
        >>> a_deque.enqueue_last(1)
        >>> a_deque.dequeue_last()
        1

    :return: last element of deque
    """
    if self.is_empty():
        raise Empty("Deque is empty")
    return self.__data_store.pop()

enqueue_first(self, x)

Insert an element to the front of the deque

>>> a_deque = ListDeque()
>>> a_deque.enqueue_first(1)

Parameters:

Name Type Description Default
x Any

element to add to the deque

required
Source code in deques/list_deque.py
def enqueue_first(self, x: Any) -> None:
    """Insert an element to the front of the deque

        >>> a_deque = ListDeque()
        >>> a_deque.enqueue_first(1)

    :param x: element to add to the deque
    """
    self.__data_store.insert(0, x)

enqueue_last(self, x)

Insert an element to the end of the deque

>>> a_deque = ListDeque()
>>> a_deque.enqueue_last(1)

Parameters:

Name Type Description Default
x Any

element to add to the deque

required
Source code in deques/list_deque.py
def enqueue_last(self, x: Any) -> None:
    """Insert an element to the end of the deque

        >>> a_deque = ListDeque()
        >>> a_deque.enqueue_last(1)

    :param x: element to add to the deque
    """
    self.__data_store.append(x)

get_first(self)

Return first element of the deque without removing it

>>> a_deque = ListDeque()
>>> a_deque.enqueue_last(1)
>>> a_deque.get_first()
1

Returns:

Type Description
Any

first element of deque

Source code in deques/list_deque.py
def get_first(self) -> Any:
    """Return first element of the deque without removing it

        >>> a_deque = ListDeque()
        >>> a_deque.enqueue_last(1)
        >>> a_deque.get_first()
        1

    :return: first element of deque
    """
    if self.is_empty():
        raise Empty("Deque is empty")
    return self.__data_store[0]

get_last(self)

Return last element of the deque without removing it

>>> a_deque = ListDeque()
>>> a_deque.enqueue_last(1)
>>> a_deque.get_last()
1

Returns:

Type Description
Any

last element of deque

Source code in deques/list_deque.py
def get_last(self) -> Any:
    """Return last element of the deque without removing it

        >>> a_deque = ListDeque()
        >>> a_deque.enqueue_last(1)
        >>> a_deque.get_last()
        1

    :return: last element of deque
    """
    if self.is_empty():
        raise Empty("Deque is empty")
    return self.__data_store[-1]

is_empty(self)

Check if deque contains no elements

>>> a_deque = ListDeque()
>>> a_deque.is_empty()
True
>>> a_deque.enqueue_last(1)
>>> a_deque.is_empty()
False

Returns:

Type Description
bool

True if deque is empty, else False

Source code in deques/list_deque.py
def is_empty(self) -> bool:
    """Check if deque contains no elements

        >>> a_deque = ListDeque()
        >>> a_deque.is_empty()
        True
        >>> a_deque.enqueue_last(1)
        >>> a_deque.is_empty()
        False

    :return: True if deque is empty, else False
    """
    return len(self.__data_store) == 0