0队列,是一种基础数据结构,遵循的原则是先进先出,就和排队一样,排在队伍前面的人先出来。
class arrayQueen: # 数组最大容量 maxSize = 0 # 队列的头部 front = 0 # 队列的尾部 rear = 0 def __init__(self, size): self.maxSize = size # 这是python中定义一维数组长度的方式,这里定义数组长度 self.arr = [0 for x in range(0, size)]z
这里的第一个参数,maxsize,是数组的最大长度,front,指向队列的头部,rear,指向队列的尾部。这个是非常重要的参数,因为在数组元素数量发生变化时,front或者rear的数值也会发生改变。
# 判断队列是否为空 def is_empty(self): return self.front == self.rear
当front和rear相等时,队列为空,初始时二者都为0,但二者相等且不为0的情况也是有可能的。
# 判断队列是否满了 def is_full(self): return (self.rear + 1) % self.maxSize == self.front
可以看到,这里返回的是一个判断, (self.rear + 1) % self.maxSize == self.front。这里为什么要用这个取模呢?这个1又是什么情况?
实际上,这个队列中有一个位置是不存放元素的,而是存放的rear,打个比方&#x