Python的队列

# -*- coding:utf-8 -*-
'''
定义一个队列Queue
'''
class Queue(object):
    def __init__(self,size):
        self.queue = []
        self.size = size
        self.head = -1
        self.tail = -1

    def isEmpty(self):
        if self.head == self.tail:
            return True
        else:
            return False

    def isFull(self):
        if self.tail - self.head + 1 == self.size:
            return True
        else:
            return False

    def inQueue(self,content):
        if self.isFull():
            print "Queue is full,can't contain any item any more."
        else:
            self.queue.append(content)  #入队时,将元素新增到队列中
            self.tail += 1              #入队时,队首指针不变,队尾指针递增1

    def outQueue(self):
        if self.isEmpty():
            print "Queue is empty,no item need to out."
        else:
            self.queue.pop(0)   #出队列:每次出队列后删除队首元素
            self.head += 1      #出队列时,队首指针递增1,对位指针不变

    def display(self):
        print "Queue = ",self.queue
        print "Size = ",len(self.queue)
        print "Head = %d,Tail = %d\n"%(self.head,self.tail)


#测试出队入队操作、队满时入队、队空时出队
q = Queue(4)
print "----------入队操作----------"
for i in range(5):
    q.inQueue(i)
    q.display()
print "----------出队操作----------"
for i in range(6):
    q.outQueue()
    q.display()

”’
运行结果:
———-入队操作———-
Queue = [0]
Size = 1
Head = -1,Tail = 0

Queue = [0, 1]
Size = 2
Head = -1,Tail = 1

Queue = [0, 1, 2]
Size = 3
Head = -1,Tail = 2

Queue is full,can’t contain any item any more.
Queue = [0, 1, 2]
Size = 3
Head = -1,Tail = 2

Queue is full,can’t contain any item any more.
Queue = [0, 1, 2]
Size = 3
Head = -1,Tail = 2

———-出队操作———-
Queue = [1, 2]
Size = 2
Head = 0,Tail = 2

Queue = [2]
Size = 1
Head = 1,Tail = 2

Queue = []
Size = 0
Head = 2,Tail = 2

Queue is empty,no item need to out.
Queue = []
Size = 0
Head = 2,Tail = 2

Queue is empty,no item need to out.
Queue = []
Size = 0
Head = 2,Tail = 2

Queue is empty,no item need to out.
Queue = []
Size = 0
Head = 2,Tail = 2
”’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值