当前位置:首页 > C++知识 > 正文内容

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

亿万年的星光5年前 (2021-02-21)C++知识2136

一、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;
}

效果

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

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

分享给朋友:

相关文章

如何估算时间复杂度

首先:  常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n^2)<Ο(n^3)<…<Ο(2^n)<Ο(n!)时间复杂度可以简单理解为最多执...

【数论】均值不等式

【数论】均值不等式

均值不等式是高中常见的一个知识点,下面这篇文章做一下简单总结。1、其中a,b属于实数R,当且仅当a=b时,等号成立。这个也叫基本不等式2、其中a,b属于正实数,当且仅当a=b时,等号成立。3、其中a,...

树的存储结构

【方法1:数组】称为父亲表示法const int m=10;          ...

树的遍历

在应用树结构解决问题时,往往要求按照某种此项获得树中全部结点的信息,这种操作叫做树的遍历。遍历的方法有很多种。常用的有:A. 先序遍历:先访问根结点,再从左到右按照先序思想遍历各子树。B. 后序遍历:...

DEVC++如何支持C++11

DEVC++如何支持C++11

DEVC++默认开启C++11,需要手动添加C++11支持。DEVC++需要使用高一点的版本,DEVC++5.11下载地址:(1)  官方下载地址: Dev-C++ downloa...

【算法】前缀和与差分(3)二维数组前缀和

【算法】前缀和与差分(3)二维数组前缀和

0.前言前面的一篇文章,介绍了一维数组的前缀和,这篇文章中,介绍一下二维数组的前缀和1.定义二维数组的前缀和就是按照二维数组求和。公式如下:那二维前缀和中一个f[i][j]表示的意思就是以(1,1)为...