队列
队列也是线性的结构,是一个简单的等待序列。尾部加入元素时队列加长,在前面删除数据时队列变短。与栈不同之处在于,队列两端都会用到,但是两端的功能不同,一端用来添加数据另一端用来删除元素。像排队一样,来的人只能排在队伍的最后面,只有前面的人都走了,才轮到这个人。因此,队列是先进先出的结构。
队列的操作与栈相似,队列包含以下操作:
- Clear()——清空队列
- IsEmpty()——判断队列是否为空
- Enqueue()——往队列中添加元素
- Dequeue()——取出一个队列的元素
- Getdata()——返回队列首元素的数据
队列的python实现
class node:
"""
节点类
包含data储存数据,next指向下一节点
"""
def __init__(self, data):
self.data = data
self.next = None
class Queue:
"""
队列
包含 入队、出队、查询是否为空 等操作
"""
def __init__(self):
self.head = None
self.Num = 0
def Clear(self):
self.head = None
self.Num = 0
def IsEmpty(self):
return self.Num == 0
def Enqueue(self, data):
if self.head == None:
self.head = node(data)
else:
p = self.head
while p.next:
p = p.next
p.next = node(data)
self.Num += 1
return True
def Dequeue(self):
p = self.head
data = p.data
self.head = p.next
return data
def Getdata(self):
p = self.head
data = p.data
return data
欢迎关注公众号 : 数学算法实验室
专注于 算法、数学、机器学习