# 先进先出
class Queue():

    def __init__(self,size):
        self.size=size
        self.front=-1 #队列前面的指针
        self.rear=-1  #队列后面的指针
        #类中设置两个属性分别为front和rear来模拟队列的头尾指针,通过它们值的关系可以判定队列是空还是满
        self.queue=[]

    ## 入队操作
    def enqueue(self,ele):
        if self.isfull():
            print("queue is full")
        else:
            self.queue.append(ele)
            self.rear=self.rear+1

    ## 出队操作
    def dequeue(self):
        if self.isempty():
            print("queue is empty")
        else:
            self.queue.pop(0)
            self.front=self.front+1

    def isfull(self):
        if self.rear - self.front + 1 == self.size :
            return True
        else:
            return False
    def isempty(self):
        if self.front == self.rear:
            return True
        else:
            return False
    def showQueue(self):
        print(self.queue)

if __name__ == '__main__':
    q = Queue(10)
    for i in range(6):
        q.enqueue(i)
    q.showQueue()
    for i in range(3):
        q.dequeue()
    q.showQueue()
    print(q.isempty())




发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code