数据结构----队列
队列(queue)也是表,队列插入和删除在不同端进行。
队列的基本操作是Enqueue(入队),在表的末端(rear)插入一个元素,还有出列(Dequeue),删除表开头的元素。(即:队尾插入,队首删除)
代码记录:
class Queen():
def __init__(self,size):
self.queen = [] #队体为空列表
self.size = size
self.head = 0 #队首为0
self.tail = 0 #队尾为0
def isEmpty(self):
if self.head == self.tail: #队首,队尾相同时,为空
return True
else:
return False
def isFull(self):
if self.tail == self.size: #队尾与队体相同时,已满
return True
else:
return False
def push(self,obj):
if self.isFull(): #入队,当满时,弹出已满提示
print "sorry,queen is full"
else:
self.queen.append(obj) #添加内容入队
self.tail += 1 #队尾位置加1
def out(self):
if self.isEmpty(): #出队,为空时,弹出为空提示
print "soffy,queen is empty!"
else:
self.tail -=1 #出队,队尾位置减1
self.queen.pop(0) #去除队首内容
def show(self):
print self.queen
if __name__ == '__main__':
q = Queen(3)
q.show()
print q.isEmpty()
q.push("A")
q.show() #['A']
print q.head
print q.tail
q.push("B")
q.show() #['A', 'B']
print q.head
print q.tail
q.push("C")
q.show() #['A',
'B', 'C']
print q.head
print q.tail
q.out()
q.push("D")
q.show() #['B', 'C', 'D']
print q.head
print q.tail
q.push("E")
q.show() #sorry,queen is full
print q.head
print q.tail