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
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()