队列——用数组来表示

前言

为什么要用数组来模拟队列?
因为数组机动性高,可用性高,灵活性也高

步入正题

请注意,以下的tail都指向末尾的下一个位置。

//插入一个元素
cin>>n;
a[tail]=n;
tail++;
if (head==tail)cout<<"队列为空";
if (tail!=head)head--;//弹出
int size=tail-head;//队列的长度
cout<<a[head];//输出队首

这些都是基本操作,还有些特殊的,比如说前缀和,以下是一个前缀和的样例

#include<bits/stdc++.h>
using namespace std;

long long a[101000],q[101000];
int head=1,tail=1;
int cmp1,cmp2;
int main(){
	int n;
	cin>>n;
	for (int i=0;i<n;i++){
		cin>>cmp1;
		if (cmp1==1){
			cin>>cmp2;
			a[tail]=cmp2;
			q[tail]=q[tail-1]+cmp2;
			tail++;
		}else if (cmp1==2){
			if (head!=tail)head++;
		}else if (cmp1==3){
			if (head!=tail)tail--;
		}else {
			cin>>cmp2;
			cout<<q[cmp2+head-1]-q[head-1]<<endl;//这里就是前缀和
		}
	}
	
	return 0;
}

相关推荐

  1. 队列——数组表示

    2024-05-01 23:28:04       33 阅读
  2. 为什么数据库会圆柱体表示?

    2024-05-01 23:28:04       32 阅读
  3. C++ 数组模拟队列

    2024-05-01 23:28:04       29 阅读
  4. 能否把 Redis 当做消息队列呢?

    2024-05-01 23:28:04       44 阅读
  5. 数组简单构成队列C++写法

    2024-05-01 23:28:04       23 阅读
  6. padStart方法格式化数据

    2024-05-01 23:28:04       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-01 23:28:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-01 23:28:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-01 23:28:04       82 阅读
  4. Python语言-面向对象

    2024-05-01 23:28:04       91 阅读

热门阅读

  1. CSS面试题

    2024-05-01 23:28:04       29 阅读
  2. 【经验总结】 PostgreSQL的COALESCE 函数用法

    2024-05-01 23:28:04       28 阅读
  3. 【Python快速上手(十)】

    2024-05-01 23:28:04       35 阅读
  4. 腾讯安全客户端(电脑管家部门)一面

    2024-05-01 23:28:04       36 阅读
  5. Android Studio的settings.gradle配置

    2024-05-01 23:28:04       27 阅读
  6. Android studio Button 监听敲击事件

    2024-05-01 23:28:04       30 阅读
  7. OneFlow概念清单

    2024-05-01 23:28:04       35 阅读