当前位置:首页 > C++目录 > 正文内容

【数据结构】队列—基本操作

亿万年的星光5年前 (2021-02-21)C++目录2359

一、C++实例分析

       C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。

       那么我们如何判断队列是空队列还是已满呢?

      a、栈空: 队首标志=队尾标志时,表示栈空。

      b、栈满 : 队尾+1 = 队首时,表示栈满。

       使用标准库的队列时, 应包含相关头文件,在栈中应包含头文件: #include< queue> 。定义:queue< int > q;

q.empty()               如果队列为空返回true,否则返回false
q.size()                返回队列中元素的个数
q.pop()                 删除队列首元素但不返回其值
q.front()               返回队首元素的值,但不删除该元素
q.push()                在队尾压入新元素
q.back()                返回队列尾元素的值,但不删除该元素


示例1

#include <queue>
#include <iostream>
using namespace std;
 
int main(){
	queue<int> q;
	//方式1: 
//	for (int i = 0; i < 10; i++){
//		q.push(i);
//	}
	//方式2:
	int x;
	while(cin>>x)
		q.push(x); 
	if (!q.empty()){
		cout << "队列的大小是:" << q.size() << endl;
	}
	
	return 0;
}


示例2:

#include <queue>
#include <iostream>
using namespace std;
 
int main(){
	queue<int> q;
	//方式1: 
//	for (int i = 0; i < 10; i++){
//		q.push(i);
//	}
	//方式2:
	int x;
	while(cin>>x)
		q.push(x); 
	
	cout<<"队头元素"<<q.front()<<endl;
	cout<<"队尾元素"<<q.back()<<endl; 
	
	return 0;
}

效果:


示例3:

#include <queue>
#include <iostream>
using namespace std;
 
int main(){
	queue<int> q;
	int x;
	while(cin>>x)
		q.push(x); 
	
	//出队列 
	while(!q.empty())
	{
		cout<<q.front()<<" ";
		q.pop();
	}
	
	
	return 0;
}

效果

    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    C++将数据写入磁盘文件

    0.前言要求:在任意路径下新建一个文本文档,向该文档中写入数据。以'#'结束字符串的输入。关键技术:ch=fputc(ch,fp);该函数的作用是把一个字符写到磁盘文件(fp所指的磁盘...

    取模运算总结——数论

    编程竞赛有相当一部分题目的结果过于庞大,整数类型无法存储,往往只要求输出取模的结果。例如(a+b)%p,若a+b的结果我们存储不了,再去取模,结果显然不对,我们为了防止溢出,可以先分别对a取模,b取模...

    常见的数据范围

    一、总结名称字节位数(二进制)最小值最大值位数(十进制)bool18011char18shrot 216    (-2^15  到2^15  -1)-...

    信息学奥赛中文件流的写法

    信息学奥赛中文件流的写法

    头文件#include<cstdio>也可以用万能头格式如下:int main(){ freopen("xxxx.in","r",st...

    图的遍历

    【题目描述】给出 N 个点,M 条边的有向图,对于每个点 v,求 A(v) 表示从点 v 出发,能到达的编号最大的点。【...

    进制转换类问题汇总

    二进制转十进制十进制转二进制十进制转M进制(M一般小于16)M进制转十进制M进制和N进制互转...