青少年编程知识记录 codecoming

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

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

效果

(adsbygoogle = window.adsbygoogle || []).push({});

作者:亿万年的星光 分类:C++知识 浏览: