大一寒假训练:队列

本文介绍了C++中的队列模板类,包括其使用、成员函数以及基本操作示例。此外,通过七个习题和题解,展示了队列在周末舞会、约瑟夫环、取牌游戏等场景中的应用,特别强调了队列在实现BFS遍历关系网络中的重要作用。
摘要由CSDN通过智能技术生成

一、使用

C++队列queue模板类的定义在头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。

C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。

C++队列Queue类成员函数如下:

back()返回最后一个元素

empty()如果队列空则返回真

front()返回第一个元素

pop()删除第一个元素

push()在末尾加入一个元素

size()返回队列中元素的个数

queue 的基本操作举例如下:

queue入队,如例:q.push(x); 将x 接到队列的末端。

queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。

访问queue队首元素,如例:q.front(),即最早被压入队列的元素。

访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。

判断queue队列空,如例:q.empty(),当队列空时,返回true。

访问队列中的元素个数,如例:q.size()

二、习题&题解(共七题)

周末舞会-队列

#include <bits/stdc++.h>
using namespace std;
int n, m, t;
queue<int> s1,s2;

int main()
{
   
    cin >> n >> m >> t;
    for (int i = 1; i <= n; i++)
        s1.push(i);
    for (int i = 1; i <= m; i++)
        s2.push(i);
    for (int i = 1; i <= t; i++)
    {
   
        cout << s1.front() << " " << s2.front() << endl;
        s1.push(s1.front());
        s1.pop();
        s2.push(s2.front());
        s2.pop();
    }
    //system("pause");
    return 0;
}

报数-队列-约瑟夫环

#include <bits/stdc++.h>
using namespace std;
int n, m, t = 1;
queue<int> s;
int main()
{
   
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        s.push(i);
    while (s.size() != 1)
    {
   
        if (t == m)
        {
   
            s.pop();
            t = 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值