Esempio n. 1
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
Esempio n. 2
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
Esempio n. 3
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_insert_str():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList((4, 5, 65))
    new_list.insert('dog')
    assert new_list.head.data == 'dog'
def test_insert_int():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList((4, 5, 65))
    new_list.insert(45)
    assert new_list.head.data == 45
def test_empty_double_linked():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList()
    new_list.insert(999)
    assert new_list.shift() == 999
def test_insert_str():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList((4, 5, 65))
    new_list.insert('dog')
    assert new_list.head.data == 'dog'
def test_insert_int():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList((4, 5, 65))
    new_list.insert(45)
    assert new_list.head.data == 45
def test_empty_double_linked():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList()
    new_list.insert(999)
    assert new_list.shift() == 999