class ArrayStack(Stackbase): def __init__(self, capacity=0): """默认capacity为0""" self._array = Array(capacity) 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() 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): StringList = [] StringList.append("Stack:size = %s, capacity = %d \n" % (self._array.get_Size(), self._array.get_Capacity())) StringList.append('[') for i in range(self._array.get_Size()): StringList.append("%s" % self._array.get(i)) if i != self._array.get_Size() - 1: StringList.append(",") StringList.append('] top') return "".join(StringList)
class ArrayQueue(Queuebase): """数组队列""" def __init__(self, capacity=10): self._array = Array(capacity) def enqueue(self, e): """入队""" self._array.add_Last(e) def dequeue(self): """出队""" return self._array.remove_First() def get_Front(self): """获得队首元素""" return self._array.get_First() 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): StringList = [] StringList.append("Queue:size = %s, capacity = %d \n" % (self.get_Size(), self.get_Capacity())) StringList.append('front [') for i in range(self.get_Size()): StringList.append("%s" % self._array.get(i)) if i != self.get_Size() - 1: StringList.append(",") StringList.append('] tail') return "".join(StringList)