コード例 #1
0
class LinkedListQueue:
    def __init__(self, capacity=float("inf")):
        self._queue = SinglyLinkedList()
        self._capacity = capacity

    def enqueue(self, data):
        if self.get_size() < self._capacity:
            self._queue.add_item_end(data)
        else:
            raise OverflowError()

    def dequeue(self):
        if self.is_empty():
            return None
        else:
            return self._queue.get_first_item()

    def peek(self):
        return self._queue.peek_first_item()

    def get_size(self):
        return self._queue.get_size()

    def get_capacity(self):
        return self._capacity

    def is_empty(self):
        return self._queue.is_empty()