コード例 #1
0
class StackSLL(object):
    def __init__(self):
        self.store = SinglyLinkedList()

    def push(self, value):
        """
        adds the value to the front of the list
        """
        self.store.addToFront(value)

    def pop(self):
        """
        removes the value from the front of the list and returns it
        """
        value = self.peek()
        self.store.removeFromFront()
        return value

    def peek(self):
        """
        returns the next value to be popped
        """
        return self.store.get(0)

    def isEmpty(self):
        """
        returns True if the value is empty
        """
        return self.store.isEmpty()
コード例 #2
0
class QueueSLL(object):
    def __init__(self):
        self.store = SinglyLinkedList()

    def enqueue(self, value):
        """
        adds the value to the back of the list
        """
        self.store.addToBack(value)

    def dequeue(self):
        """
        removes the value from the front of the list
        """
        if self.isEmpty():
            raise IndexError("the queue is empty")
        value = self.peek()
        self.store.removeFromFront()
        return value

    def peek(self):
        """
        returns the first value to be dequeued
        """
        if self.isEmpty():
            raise IndexError("the queue is empty")
        return self.store.get(0)
    
    def isEmpty(self):
        return self.store.getSize() == 0