Beispiel #1
0
def test_shift():
    """ Test shift """
    l = DoubleLinkedList()
    with pytest.raises(LookupError):
        l.shift()
    for i in range(1, 4):
        l.append(i)
    assert l._size == 3
    assert l.shift() == 3
    assert l.head.value == 1
    assert l.tail.value == 2
    assert l._size == 2
    assert l.shift() == 2
    assert l.head.value == 1
    assert l.tail.value == 1
    assert l._size == 1
def test_shift():
    """ Test shift """
    l = DoubleLinkedList()
    with pytest.raises(LookupError):
        l.shift()
    for i in range(1,4):
        l.append(i)
    assert l._size == 3
    assert l.shift() == 3
    assert l.head.value == 1
    assert l.tail.value == 2
    assert l._size == 2
    assert l.shift() == 2
    assert l.head.value == 1
    assert l.tail.value == 1
    assert l._size == 1
Beispiel #3
0
class Queue(object):
    '''Stack is a composition of LinkedList'''
    def __init__(self, input=None):
        self.queue = DoubleLinkedList(input)

    def enqueue(self, val):
        self.queue.insert(val)

    def dequeue(self):
        shift_val = self.queue.shift()
        return shift_val

    def size(self):
        return self.queue._size()

    def peek(self):
        return self.queue.tail.data
Beispiel #4
0
class Deque(object):
    '''Deque is a composition of Double Linked List'''

    def __init__(self, input=None):
        '''create doubly linked list'''
        self.deque = DoubleLinkedList(input)

    def append(self, val):
        self.deque.append(val)

    def append_left(self, val):
        self.deque.insert(val)

    def pop(self):
        return self.deque.pop()

    def pop_left(self):
        return self.deque.shift()

    def peek(self):
        try:
            return self.deque.head.data
        except AttributeError:
            return None

    def peek_left(self):
        try:
            return self.deque.tail.data
        except AttributeError:
            return None

    def size(self):
        size = 0
        current_spot = self.deque.head
        while current_spot:
            size += 1
            current_spot = current_spot.toward_tail
        return size
Beispiel #5
0
class Deque(object):
    '''Deque is a composition of Double Linked List'''
    def __init__(self, input=None):
        '''create doubly linked list'''
        self.deque = DoubleLinkedList(input)

    def append(self, val):
        self.deque.append(val)

    def append_left(self, val):
        self.deque.insert(val)

    def pop(self):
        return self.deque.pop()

    def pop_left(self):
        return self.deque.shift()

    def peek(self):
        try:
            return self.deque.head.data
        except AttributeError:
            return None

    def peek_left(self):
        try:
            return self.deque.tail.data
        except AttributeError:
            return None

    def size(self):
        size = 0
        current_spot = self.deque.head
        while current_spot:
            size += 1
            current_spot = current_spot.toward_tail
        return size
def test_shift():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList(LIST_INPUT)
    assert new_list.shift() == 6
def test_empty_double_linked():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList()
    new_list.insert(999)
    assert new_list.shift() == 999
def test_shift():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList(LIST_INPUT)
    assert new_list.shift() == 6
def test_empty_double_linked():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList()
    new_list.insert(999)
    assert new_list.shift() == 999