python算法9.21——队列

# 队列是一种线性表,在两端分别进行插入、删除,先入先出
# 1.队列有固定长度 size
# 2.队列有入队、出队操作,enqueue、dequeue
# 3.入队在队尾,出队在对头,front、rear


class Queue:
    def __init__(self,size):
        self.size = size
        self.front = -1
        self.rear = -1
        self.items = []

    def isfull(self):
        return self.rear-self.front == self.size-1

    def isempty(self):
        return self.rear == self.front

    def enqueue(self,item):
        if self.isfull():
            raise  Exception("Wrong operation! Queue if full!")
        else:
            self.items.append(item)
            self.rear = self.rear+1

    def dequeue(self):
        if self.isempty():
            raise  Exception("Wrong operation! Stack if empty!")
        else:
            self.items.pop(0)
            self.front = self.front+1

    def show(self):
        print(self.items)


if __name__ == '__main__':
    q = Queue(5)
    for i in range(4):
        q.enqueue(i)
        q.show()
    for i in range(2):
        q.dequeue()
        q.show()

猜你喜欢

转载自blog.csdn.net/nominior/article/details/82808096