队列queue

今天,我想和大家谈一谈队列,首先,我们要了解什么是队列1、队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点:(1)队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构;(2)在队尾添加元素,在队头删除元素。2、队列的相关概念:(1)队头与队尾: 允许元素插入的一端称为队尾,允许元素删除的一端称为队头;(2)入队:队列的插入操作;...
摘要由CSDN通过智能技术生成

今天,我想和大家谈一谈队列,首先,我们要了解什么是队列

1、队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点:

(1)队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构;

(2)在队尾添加元素,在队头删除元素。

2、队列的相关概念:

(1)队头与队尾: 允许元素插入的一端称为队尾,允许元素删除的一端称为队头;

(2)入队:队列的插入操作;

(3)出队:队列的删除操作。

3、队列的操作:

(1)入队: 通常命名为push()

(2)出队: 通常命名为pop()

(3)求队列中元素个数

(4)判断队列是否为空

(5)获取队首元素

4、队列的分类:

(1)基于数组的循环队列(循环队列)

(2)基于链表的队列(链队列)

队列,在我们的生活中无处不在,食堂打饭的队列,买票的队列…

好了,谈完了队列的定义,我们就来看看如何使用吧

1.队列基本模型

const int maxn=100;
int a[maxn];//定义一个数组来模拟队列
front=1;//头指针指向队头元素
rear=maxn+1;//尾指针指向队尾后面一个元素

2.队列的运用 取牌游戏
取牌游戏
题目描述
Bessie正在使用一堆共K张(N≤K≤100,000; K是N的倍数)纸牌与N-1个(2≤N≤100)朋友玩取牌游戏。纸牌中共包含M = K / N张“good”牌和K - M张“bad” 牌。 Bessie负责发牌,她当然想独占所有“good”牌,因为她喜欢赢。 她的朋友怀疑她会耍诈,所以他们给出如下一些限制: 游戏开始时,将最上面的牌发给Bessie右手边的人; 每发完一张牌,她必须将接下来的P 张牌(1 ≤ P ≤ 10) 一张一张地依次移到最后放在牌堆的底部。 以逆时针方式持续给每位玩家发牌 Bessie迫切想赢,请你帮助她算出所有“good”牌放置的位置,以便Bessie得到所有“good”牌。牌从上到下依次按1,2,3,……编号。

输入格式
第一行,三个用空格间隔的整数:N, K ,P

输出格式
M行 从顶部按升序依次输出“good”牌的位置

输入输出样例
样例1

输入样例
3 9 2
输出样例
3
7
8

实现源码:

#include <bits/stdc++.h>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值