队列(数组)
class Array(object):
def __init__(self,size=None):
self.size = size
self._items = [None] * size
def __getitems__(self,index):
return self._items[index]
def __setitems__(self,index,value):
return self._items[index] == value
def __lan__(self):
return self.size
def clear(self,value=None):
for i in range(self._items):
self._items == value
def __iter__(self):
for item in self._items:
yield item
class FullError(Exception):
pass
class EmptyError(Exception):
pass
class Queue(object):
def __init__(self.maxsize):
self.maxsize = maxsize
self.array = Array(maxsize)
self.head = 0
self.tail = 0
def __len__(self):
return self.head - self.tail
def push(self,value):
if len(self) >= self.maxsize:
raise FullError('full')
self.array[self.head % self.maxsize] = value
self.head += 1
def pop(self):
value = self.array[self.tail % self.maxsize]
self.tail += 1
return value

浙公网安备 33010602011771号