队列数据结构可视化

返回主页

队列(Queue)是一种先进先出(FIFO)的线性数据结构。

普通队列在队尾(tail)入队、队头(head)出队;循环队列使用数组模拟环形存储,通过 head/tail 指针复用空间。本工具支持两种队列的可视化操作与代码对照。

基本操作

队列设置

400ms

普通队列可视化

长度: 0 容量: 无限制
head(左端出队) ← 出队 | 入队 → tail(右端入队)
空队列
已占用

操作日志

操作日志将显示在这里...

队列信息

当前长度: 0
队头元素:
队尾元素:
是否为空:

操作统计

0
入队次数
0
出队次数

队列核心代码

class Queue:
def __init__(self, max_size=100):
self.q = [None] * max_size
self.head = 0
self.tail = 0
self.max_size = max_size
def is_empty(self):
return self.head == self.tail
def is_full(self):
return self.tail == self.max_size
def enqueue(self, item):
if not self.is_full():
self.q[self.tail] = item # 存入 tail 位置
self.tail += 1 # tail 向后走一步
def dequeue(self):
if not self.is_empty():
item = self.q[self.head] # 取出 head 位置元素
self.head += 1 # head 向后走一步
return item

知识点总结

空队列
head == tail
当头指针与尾指针指向同一位置时,队列中没有任何元素。
满队列
tail == max_size
当尾指针到达数组末尾时,普通队列无法继续入队。
队列长度
length = tail - head
尾指针与头指针之间的差值即为队列中实际元素个数。