【队列】理解数据结构中的先进先出原则

队列(Queue),是一种遵循先进先出(FIFO)原则的线性数据结构。

你肯定注意到了,队列有个特点——先进先出!

  • 队列的头文件: #include <queue> ,或者你要是懒得写可以直接用万头能文件 #include <bits/stdc++.h>
  • 声明一个队列的方式是像声明栈、优先队列、动态数组一样的格式。如下 queue<int> que; //声明了一个int类型名为que的队列。后续操作都以这个名为que的队列为例。
  • 不但队列的声明、头文件与栈如出一辙,而且队列的基本操作也与栈一样,只是没有top()操作!
    queue<int> que;     // 创建一个队列 
    que.push(x);     	// 将x插入到队列中,插入队尾
    que.front();     	// 获取队头元素的值
    que.pop();       	// 出队,队头出队 
    que.size();      	// 求队列中元素的个数  长度  大小 
    que.empty();     	// 判断队列是否为空,空返回true,不为空返回false 
    
  • 输入&输出:将用户输入的数插入到que中,可以用一个for循环来写,而输出可以再用for循环来输出,思路如下:
    1. for循环获取用户输入的数, 临时存储变量x内;
    2. xque.push插入到que
    3. for循环
    4. 再循环内输出que.front
    5. que.pop更新第二个元素
    • 所以完整代码是:
    #include <iostream>
    #include <queue>
    
    using namespace std;
    
    int main(){
    	
    	int n;
    	cin >> n;
    	queue<int> que;
    	for (int i = 0, x; i < n; i++){
    		cin >> x;
    		que.push(x);
    	} //以上为输入部分
    	for (int i = 0; i < n; i++){
    		cout << que.front(); << endl;
    		que.pop();
    	}
    	return 0;
    }
    
  • 队列默认是按照元素从先进先出的顺序进行排列,即最先插入的元素在队首。如果想要实现其他类型的排序,可能需要使用其他数据结构或自定义排序逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值