目录
队列
一种操作受限制的特殊线性表,只允许在线性表的一端进行插入,而在另一端进行删除。
特性:先进先出 (就和排队一样)
入队:将值为x的元素插入队尾
出队:删去对头元素并返回该元素
链队列的插入和删除运算
初始化
Class Queue(object):
def __init__(self): #初始化
self.items=[]
判断队列是否为空
def is_empty(self): #判断队列是否为空
return self.items==[] #返回布尔类型
入队
def equeue(self,item): #入队列
self.items.insert(0,item)
#入队列是永远从第一个开始进去,这样可以使出队列时直接通过pop方法来出队列,这样就做到了先进先出
出队
def dequeue(self): #出队列
return self.items.pop() #出队列出最后一个就相当于先进先出
队列个数
def size(self): #队列元素个数
return len(self.items) #长度
循环队列(判断队空队满)
还有一个解决方法:
设置一个计数器
队空条件:count==0
队满条件:count==maxsize
判断方法:
假设计数器count,初值为0
当入队列操作成功,count+1
当出队列操作成功,count-1
这样的话,count不仅具有计数功能,而且可以起到标识作用。
最后实例:
class Queue(object):
def init(self):
self.items=[]
def is_empty(self): #判断队列是否为空
return self.items==[]
def enqueue(self,item): #入队列
self.items.insert(0,item)
def dequeue(self): #出队列
return self.items.pop()
def size(self): #队列元素个数
return len(self.items)
if name == "__main__":
queue = Queue()
print(queue.is_empty())
print(queue.size())
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
print(queue.dequeue())
print(queue.dequeue())
print(queue.dequeue())
print(queue.is_empty())
print(queue.size())