class ArrayQueue(Queue):

    def __init__(self, capacity: int = 10):
        self.__data = Array(capacity)

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

    def enqueue(self, ele):
        self.__data.add_to_last(ele)

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

    def dequeue(self):
        return self.__data.remove_first()

    def get_front(self):
        return self.__data.get_first()

    def get_capacity(self):
        return self.__data.get_capacity()

    def __str__(self):
        bstr = 'ArrayQueue size: %d, capacity: %d\n' % (self.__data.get_size(), self.__data.get_capacity())
        bstr += 'front ['
        for i in range(self.__data.get_size()):
            bstr += '' + str(self.__data.get(i))
            if i != self.__data.get_size() - 1:
                bstr += ', '
        bstr += '] tail'
        return bstr
예제 #2
0
class ArrayStack(Stack):
    def __init__(self, capacity: int = 10):
        self.__data = Array(capacity)

    def peek(self):
        return self.__data.get_last()

    def push(self, ele):
        self.__data.add_to_last(ele)

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

    def pop(self):
        return self.__data.remove_last()

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

    def __str__(self):
        bstr = 'ArrayStack size: %d, capacity: %d\n' % (
            self.__data.get_size(), self.__data.get_capacity())
        bstr += '['
        for i in range(self.__data.get_size()):
            bstr += '' + str(self.__data.get(i))
            if i != self.__data.get_size() - 1:
                bstr += ', '
        bstr += '] top'
        return bstr
class ArrayStack(StackBase):
    """使用自定义的Array实现"""
    def __init__(self, capacity=0):
        self._array = Array(capacity=capacity)

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

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

    def get_capacity(self):
        return self._array.get_capacity()

    def __str__(self):
        return str('<chapter_05_Stack_Queue.stack.ArrayStack> : {}'.format(
            self._array))

    def __repr__(self):
        return self.__str__()

    def push(self, e):
        self._array.add_last(e)

    def pop(self):
        return self._array.remove_last()

    def peek(self):
        return self._array.get_last()