🧑‍🏫 阿易老师 出品

🎠 围圈报数 · 学队列

C++ 里的 队列(queue),就像同学们排队打饭——先来的先服务,先进先出(FIFO)!n 个人围成一圈报数,数到 m 的人出列,用队列怎么模拟?点一点就知道!

📖 题目背景:围圈报数

n 个同学围成一圈做游戏,从第 1 号开始报数:1、2、3…… 报到 m 的同学出列(出圈),下一位同学重新从 1 开始报数,报到 m 的同学再出圈……直到所有同学都出圈为止。现在要按顺序输出每个出圈同学的编号

💡 小提示:这就像「丢手绢」游戏——大家围成一圈,报到 m 的同学就要离开!用队列怎么模拟呢?往下看,亲手试一试就知道啦~

试一试:围圈报数!
front 队头
tail 队尾
队头 front()
-
人数 size()
0
为空 empty()
true
当前报数
1
🏆 出圈顺序(依次输出)
还没人出圈,点「报一个数」试试~
对应的 C++ 代码
queue.cpp
点击左边的按钮,看看代码里发生了什么~
我的操作代码
你还没操作哦,点左边的「报一个数」试试~
🧍

什么是队列?

队列(queue)就像排队打饭:新同学从队尾加入,老同学从队头离开。先进来的先走——这叫 先进先出(FIFO)

📏

入队出队的规矩

入队 push = 从队尾加入;出队 pop = 删除队头;front() 看看队头是谁。只能从两头操作,中间不能乱插队哦!

🔄

围圈报数 = 队列

围成一圈转圈 = 报数没到 m 的人从队头出来,站到队尾继续排;报到 m 的人从队头出列!一条队列就能模拟报数出圈!