队列(数组)

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
posted @ 2020-04-11 12:35  ColaIce  阅读(170)  评论(0)    收藏  举报