当前位置: 首页 > news >正文

【PTA数据结构 | C语言版】顺序队列的3个操作

本专栏持续输出数据结构题目集,欢迎订阅。

文章目录

    • 题目
    • 代码

题目

请编写程序,将 n+1 个整数顺序压入容量为 n 的队列,随后执行 n+1 次取队首并出队的操作。

输入格式:
输入首先在第一行给出正整数 n(≤10^4 );随后一行给出 n+1 个 int 范围内的整数,数字间以空格分隔。

输出格式:
将输入的n+1 个整数顺序压入容量为 n 的队列,随后执行 n+1 次取队首并出队的操作,输出取出的元素的值,每行一个。
注意:当队列已满时,入队操作应该不执行,并在一行中输出错误信息 错误:队列已满。;当队列为空时,取队首和出队操作应该不执行,并在一行中输出错误信息 错误:队列为空。。空队列取队首应返回 -1。

输入样例:
5
1 2 3 4 5 6

输出样例:
错误:队列已满。
1
2
3
4
5
错误:队列为空。
-1
错误:队列为空。

代码

#include <stdio.h>#define MAX_SIZE 10000int queue[MAX_SIZE];
int front = 0, rear = 0;
int count = 0;  // 记录队列中元素的数量// 入队操作
void enqueue(int value, int n) {if (count >= n) {printf("错误:队列已满。\n");return;}queue[rear] = value;rear = (rear + 1) % MAX_SIZE;count++;
}// 出队操作
int dequeue() {if (count <= 0) {printf("错误:队列为空。\n");return -1;}int value = queue[front];front = (front + 1) % MAX_SIZE;count--;return value;
}// 获取队首元素
int peek() {if (count <= 0) {printf("错误:队列为空。\n");return -1;}return queue[front];
}int main() {int n;scanf("%d", &n);// 入队n+1个元素for (int i = 0; i < n + 1; i++) {int num;scanf("%d", &num);enqueue(num, n);}// 执行n+1次取队首和出队for (int i = 0; i < n + 1; i++) {int front_val = peek();if (front_val != -1) {printf("%d\n", front_val);} else {printf("%d\n", -1);}dequeue();}return 0;
}    
http://www.xdnf.cn/news/1096633.html

相关文章:

  • 【会员专享数据】2013-2024年我国省市县三级逐年SO₂数值数据(Shp/Excel格式)
  • [论文阅读]LLMZip: Lossless Text Compression using Large Language Models
  • 【C++详解】STL-list模拟实现(深度剖析list迭代器,类模板未实例化取嵌套类型问题)
  • 文心一言4.5开源部署指南及文学领域测评
  • 【音视频】HTTP协议介绍
  • Windows 驱动程序中不同函数运行在不同的中断请求级别 (IRQL)详细的分类
  • 正点原子 文件权限
  • 聊一聊跨浏览器测试验证点梳理
  • 搜索引擎vs向量数据库:LangChain混合检索架构实战解析
  • 数据提取之bs4(BeautifuSoup4)模块与Css选择器
  • 使用Word/Excel管理需求的10个痛点及解决方案Perforce ALM
  • CMD,PowerShell、Linux/MAC设置环境变量
  • 主从IO核心
  • Transformers 和 PyTorch 的区别与安装指南
  • Flowable23手动、接收任务----------持续更新中
  • 【计算机基础理论知识】C++篇(二)
  • codeforeces Round1032 - Round 1036
  • 学习笔记(32):matplotlib绘制简单图表-数据分布图
  • Linux Vim 编辑器详解:从入门到进阶(含图示+插件推荐)
  • Java从入门到精通!第三天(数组)
  • 【threejs】第一人称视角之八叉树碰撞检测
  • 论文笔记(LLM distillation):Distilling Step-by-Step!
  • MiniGPT4源码拆解——models
  • 原生微信小程序研发,如何对图片进行统一管理?
  • 微信小程序101~110
  • UnrealEngine5游戏引擎实践(C++)
  • Android Coil 3 data加载图的Bitmap或ByteArray数据类型,Kotlin
  • Android 如何阻止应用自升级
  • C语言 | 函数核心机制深度解构:从底层架构到工程化实践
  • Matplotlib 全面使用指南 -- 自动缩放坐标轴 Autoscaling Axis