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

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

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

一、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.前言简单介绍一下C++读取文件的基本操作。关键技术:freopen() 文件的打开函数 FILE *fp fp=fopen(文件名,使用文件方式) 例如: fp...

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

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

C++中的位宽与保留小数

C++中的位宽与保留小数

一、setw函数C++ setw() 函数用于设置字段的宽度,语法格式如下setw(n)比如:#include <bits/stdc++.h> using names...

字符串的输入输出汇总

做字符串的题目的时候,经常会遇到输入输出不对的情况,这篇文章就简单总结一下字符串常见的输入输出。2.cin基本操作:#include<iostream> #include<cstd...

【题解】玩具

【题目描述】商店正在出售蒜头君最喜欢的系列玩具,在接下来的 " 周中,每周会出售其中的一款,同一款玩具不会重复出现。由于是蒜头君最喜欢的系列,他希望尽可能多地购买这些玩具,但是同一款玩具蒜头...

进制转换类问题汇总

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