class ArrayQueue(QueueInterface): def __init__(self, capacity=0): # 动态数组对象, 容量默认为10,有10个空间的顺序队列, # 用户可自定义队列的大小 self.__data = Array(capacity) # 获取队列内元素个数 def getSize(self): return self.__data.getSize() # 判断队列是否为空 def isEmpty(self): return self.__data.isEmpty() # 入队 def enqueue(self, e): self.__data.addLast(e) #出队 def dequeue(self): return self.__data.deleteFirst() # 取队首元素 def getFront(self): return self.__data.getFirst() def __str__(self): return "ArrayQueue: {}".format(self.__data) def __repr__(self): return self.__str__()
class ArrayStack(StackInterface): def __init__(self, capacity=0): # 动态数组对象, 容量默认为10,有10个空间的顺序栈, # 用户可自定义栈的大小 self.__data = Array(capacity) # self.__size = 0 不需要维护size,下面用不到 # 获取栈内元素个数 def getSize(self): return self.__data.getSize() # 判断栈是否为空 def isEmpty(self): return self.__data.isEmpty() # 入栈 def push(self, e): self.__data.addLast(e) # 出栈 def pop(self): return self.__data.deleteLast() # 取栈顶元素 def peek(self): return self.__data.getLast() def __str__(self): return "ArrayStack:{}, size = {}".format(self.__data, self.__data.getSize()) def __repr__(self): return self.__str__()
def generate_random_array(n, range_L, range_R): random.seed(time()) array = Array() for i in range(0, n, 1): array.addLast(randint(range_L, range_R)) return array