Esempio n. 1
0
class Queue(object):
    """Make queue object from doubly-linked list object."""

    def __init__(self, val=None):
        """Initialize queue."""
        self._container = DoublyLinked(val)

    def enqueue(self, val):
        """Push item to queue."""
        self._container.append(val)

    def dequeue(self):
        """Remove item from head queue and return its value."""
        return self._container.pop()

    def peek(self):
        """Return next value in queue."""
        if self._container.head is self._container._mark:
            return None
        else:
            return self._container.head.get_data()

    def size(self):
        """Return the length of the list."""
        counter = 0
        current_node = self._container.head
        while current_node is not self._container._mark:
            counter += 1
            current_node = current_node.get_next()
        return counter
Esempio n. 2
0
class Queue(object):
    """Make queue object from doubly-linked list object."""
    def __init__(self, val=None):
        """Initialize queue."""
        self._container = DoublyLinked(val)

    def enqueue(self, val):
        """Push item to queue."""
        self._container.append(val)

    def dequeue(self):
        """Remove item from head queue and return its value."""
        return self._container.pop()

    def peek(self):
        """Return next value in queue."""
        if self._container.head is self._container._mark:
            return None
        else:
            return self._container.head.get_data()

    def size(self):
        """Return the length of the list."""
        counter = 0
        current_node = self._container.head
        while current_node is not self._container._mark:
            counter += 1
            current_node = current_node.get_next()
        return counter
Esempio n. 3
0
def test_pop(li):
    """Test pop function."""
    from doubly_linked import DoublyLinked
    new_list = DoublyLinked()
    new_list.insert(li)
    assert new_list.pop() == 'one'
    try:
        new_list.head.prev_node
    except AttributeError:
        assert True
Esempio n. 4
0
def test_insert(li, result):
    """Test insert function."""
    from doubly_linked import DoublyLinked
    new_list = DoublyLinked()
    new_list.insert(li)
    new_list.pop()
    assert result == 'one'
Esempio n. 5
0
def test_remove():
    from doubly_linked import DoublyLinked
    new_list = DoublyLinked()
    new_list.insert([1, 2, 3])
    new_list.remove(3)
    assert new_list.shift() == 2
Esempio n. 6
0
def test_shift_empty(li):
    from doubly_linked import DoublyLinked
    new_list = DoublyLinked()
    new_list.insert(li)
    with pytest.raises(IndexError):
        new_list.shift()
Esempio n. 7
0
def test_shift(li, result):
    from doubly_linked import DoublyLinked
    new_list = DoublyLinked()
    new_list.insert(li)
    assert new_list.shift() == result
Esempio n. 8
0
def test_append(li, result):
    from doubly_linked import DoublyLinked
    new_list = DoublyLinked()
    new_list.insert(li)
    new_list.append('four')
    assert result == new_list.shift()
Esempio n. 9
0
def test_new_list():
    """Test list constructor."""
    from doubly_linked import DoublyLinked
    new_list = DoublyLinked()
    assert isinstance(new_list, DoublyLinked)
Esempio n. 10
0
 def __init__(self, val=None):
     """Initialize queue."""
     self._container = DoublyLinked(val)
Esempio n. 11
0
 def __init__(self, val=None):
     """Initialize queue."""
     self._container = DoublyLinked(val)