Module solists.transpose_list

Expand source code
from .doubly_linked_list import List

__all__ = ['TransposeList']


class TransposeList(List):
    """
    Doubly linked list that implements transpose method.

    >>> a = TransposeList.from_iterable([1, 2, 3])
    >>> print(a)
    [1, 2, 3]
    >>> 3 in a
    True
    >>> print(a)
    [1, 3, 2]
    >>> 2 in a
    True
    >>> print(a)
    [1, 2, 3]
    >>> 5 in a
    False
    >>> print(a)
    [1, 2, 3]
    """

    def _rearrange(self, node):
        """
        Apply transpose method.
        """
        if node is not self.head:
            prev_node = node.prev_node
            self._remove(node)
            self._insert_before(prev_node, node)

Classes

class TransposeList

Doubly linked list that implements transpose method.

>>> a = TransposeList.from_iterable([1, 2, 3])
>>> print(a)
[1, 2, 3]
>>> 3 in a
True
>>> print(a)
[1, 3, 2]
>>> 2 in a
True
>>> print(a)
[1, 2, 3]
>>> 5 in a
False
>>> print(a)
[1, 2, 3]
Expand source code
class TransposeList(List):
    """
    Doubly linked list that implements transpose method.

    >>> a = TransposeList.from_iterable([1, 2, 3])
    >>> print(a)
    [1, 2, 3]
    >>> 3 in a
    True
    >>> print(a)
    [1, 3, 2]
    >>> 2 in a
    True
    >>> print(a)
    [1, 2, 3]
    >>> 5 in a
    False
    >>> print(a)
    [1, 2, 3]
    """

    def _rearrange(self, node):
        """
        Apply transpose method.
        """
        if node is not self.head:
            prev_node = node.prev_node
            self._remove(node)
            self._insert_before(prev_node, node)

Ancestors

Inherited members