class Aaa:
(定义一个类,也就是我们的数组)
def __init__(self, size=32):
self._size = size (最大容器容量)
self._items = [None]*size (通过列表,生成容器)
def __getitem__(self, index):
return self._items[index]
def __setitem__(self, key, value):
self._items[key] = value
def __len__(self):
return len(self._items)
def clear(self, value=None):
for index in self._items:
self._items[index] = value
def __iter__(self):
for i in self._items:
yield i
class queue:
(定义一个队列)
def __init__(self,maxsize=32):
self.bag=Aaa(maxsize) (这里用前面定义好的数组存储数据,传入数组的大小)
self.tail=0 (尾长度)
self.head=0 (首长度)
def push(self,value):
(添加值的方法)
self.bag[self.tail % len(self.bag)]=value (这里用到了一个取模的思想)
self.tail+=1
def pop(self):
(从尾部去除值的方法)
value=self.bag[self.head%len(self.bag)] (这里用到了一个取模的思想)
self.head+=1
return value
def __len__(self):
return self.tail-self.head (返回尾长度减去首长度,就得到了队列的长度)