队列使用方法详细讲解
队列详细讲解
队列是一种先进先出的线性表,它只允许在表的一段进行插入元素,在表的另一端删除元素,先进先出,插入的一端叫做队尾(back),删除的一段叫做对头(front)
队列定义在<queun>头文件中
下面代码是队列成员的函数原型:
//-----容量capacity-----
bool empty();//测试是否为空队列
size_type size();//返回队列长度//-----元素存取element access----
front();//返回对头元素
back();//返回队尾元素//----队列运算----
void push(const T& x);//插入一个元素到队尾
void pop();//删除队列下一个元素
队列应用举例:
先看代码:
#include<iostream>
#include<queue>
using namespace std; //队列定义在命名空间
int main()
{queue<int> Q;for (int i = 1; i <= 6; i++) Q.push(i); //队列Q:1 2 3 4 5 6 Q.front() -= Q.back();//Q:-5 1 2 3 4 5while (!Q.empty()) {cout << Q.front() << " ";Q.pop(); //出队}return 0;
}
用队列的方法来解决实际问题:
例题:桌上有一叠牌,从第一张牌 开始从上往下依次编号1~n。当至少还剩两张牌时进行如下的操作:
把第一张牌扔掉,然后把新的第一张牌放到整碟牌的最后。输入总牌数,输出每次扔掉的牌,以及最后剩下的两张牌
例如:总牌数为7
输入:7
输出:1 3 5 7 4 2 6
1 2 3 4 5 6 7
3 4 5 6 7 2
5 6 7 2 4
7 2 4 6
4 6 2
2 6
解题代码如下:
#include<iostream>
#include<queue>
using namespace std;
int main()
{queue<int> q; //声明队列int n; //输出总的牌数cin >> n;for (int i = 0; i < n; i++)q.push(i + 1); //将1~7放到队列里面去while (q.size() > 2){cout << q.front() << " "; //输出队列第一个元素q.pop(); //将队列第一个元素出队q.push(q.front()); //将现队列第一个元素放入到队尾q.pop(); //现队列的第一个元素出队} cout << endl;while (!q.empty()){cout << q.front() << " "; //输出队列中剩余的元素q.pop();}return 0;
}
队列使用方法详细讲解相关推荐
- Require使用方法详细讲解
Require使用方法详细讲解 文章目录 Require使用方法详细讲解 一.AMD 规范 1,AMD 基本介绍 2,AMD 模块规范 二.RequireJS 介绍 1,什么是 RequireJS 2 ...
- Python海龟Turtle的使用画中秋画的方法详细讲解
最近发现很多博主使用Turtle库进行画作,今天来详细讲解海龟库方法 一.定义: Python的turtle库是一个用于绘制图形的库,它来自 Wally Feurzeig, Seymour Paper ...
- String类中方法详细讲解
学习目标: String类方法详细讲解 学习内容: 1.value属性 了解String类的value属性: private final char value[] ; //String类的不可变特性就 ...
- 什么是线程?线程概念及方法详细讲解
目录 1 多线程 1.1 并发与并⾏ 1.2 线程与进程 1.3 创建线程类 2 多线程详解 2.1 多线程原理 2.2 Thread类 2.3 创建线程⽅式⼆ 2.4 Thread 和 Runnab ...
- Android --- PagerAdapter的使用方法详细讲解
PagerAdapter简介 PagerAdapter是android.support.v4包中的类,它的子类有FragmentPagerAdapter, FragmentStatePagerAdap ...
- 泰拉瑞亚修改器服务器能用吗,泰拉瑞亚修改器使用方法详细讲解
泰拉瑞亚修改器的使用方法一直是小伙伴们所关心的问题,这款游戏走的是像素风,依旧是沙盒内游戏专用的风格,自由度非常的高,而且这款游戏目前在PC端和移动端上都可以使用了,在PC上玩家可以使用修改器,而在移 ...
- Java split方法详细讲解
今天是圣诞节,我是中国人,无视圣诞节. 文章可能有点长,看下来必定有所收获. 没有学过正则表达式的去b站看,一个半小时应该可以看完,要看请点这里 这是必备的前置技能,不懂得话没法真正明白split用法 ...
- javascript中常用数组方法详细讲解
javascript中数组常用方法总结 1.join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串.也可以指定可选的字符串在生成的字符串中来分隔 ...
- 环形队列的输出_循环队列的基本操作详细讲解
实验学时: 2 实验类型: (设计型) 一.实验目的 1. 理解并掌握队列的逻辑结构和顺序存储结构,了解循环队列的特点: 2. 掌握循环队列中基本操作的相关算法: 3. 编程实现相关算法: 4. 学会 ...
最新文章
- 1、初识Server API for JavaScript
- python绘制表格界面_python 读取 excel 生成 html 页面
- python现在时间 命令,Python 日期格式和时间以及当前时间和时间戳
- jitter 如何优化网络_抖音优化该怎么做?
- JavaScript——正则表达式
- 云图说|初识云数据库GaussDB(for Cassandra)
- 【clickhouse】基于ClickHouse的海量数据交互式OLAP分析场景实践
- linux下限制ip访问
- 正则学习之量词匹配分析
- 模拟(堆):USACO Jan11 瓶颈
- windows下php mongodb 安装配置使用查询
- 打分框手工输入分值的技术要领
- linux下如何安装凤凰系统,凤凰系统Phoenix OS U盘版安装制作教程
- linux源码编译ipk,OpenWrt-SDK-编译生成ipk软件包
- 条件覆盖,路径覆盖,语句覆盖,分支覆盖
- linux删除mysql用户_如何删除MySQL用户帐户
- ​模拟人生3 Mac版自由性超高的模拟游戏
- burpsuite配置
- bzoj 1863 [Zjoi2006]trouble 皇帝的烦恼
- 定点 浮点 神经网络 量化_神经网络模型量化论文小结