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

【数据结构——栈与队列】环形队列的基本运算(头歌实践教学平台习题)【合集】

目录😋

任务描述

相关知识

测试说明

我的通关代码:

测试结果:


任务描述

本关任务:编写一个程序实现环形队列的基本运算。

相关知识

为了完成本关任务,你需要掌握:
初始化队列、销毁队列、判断队列是否为空、进队列、出队列等。

测试说明

平台会对你编写的代码进行测试:
输入进队列字符串(以字符串形式输入)

输入:
abc
def

输出:
(1)初始化队列q
(2)依次进队列元素:a b c
(3)队列为非空
(4)出队一个元素a
(5)依次进队列元素:d e f
(6)出队列序列:b c d e f
(7)释放队列

输入:
xyz
opq2*

输出:
(1)初始化队列q
(2)依次进队列元素:x y z
(3)队列为非空
(4)出队一个元素x
(5)依次进队列元素:o p q 2 *
(6)出队列序列:y z o p q 2 *
(7)释放队列

开始你的任务吧,祝你成功!


我的通关代码:

// 请在Begin-End之间添加你的代码,
//实现环形队列的如下基本运算//
//(1)初始化队列q//
//(2)判断队列q是否非空,输出判断结果//
//(3)依次进队列元素,注:进队列元素由用户输入//
//(4)出队一个元素,输出该元素//
//(5)依次进队列元素,注:进队列元素由用户输入//
//(6)输出出队序列//
//(7)释放队列//
/********** Begin *********/
#include <iostream>
#include <string>
#include <vector>using namespace std;class CircularQueue{private:vector<char>buffer;int head;int tail;int size;public:
CircularQueue(int capacity)
:buffer(capacity),head(-1),tail(-1),size(capacity){}bool isEmpty() {return head == -1;}bool isFull() {return (tail + 1) % size == head;}void enqueue(char item){if(isFull()){cout<<"(3)列队为满"<<endl;return;}if(isEmpty()){head = 0;}tail = (tail + 1) % size;buffer[tail] = item;
}char dequeue(){if (isEmpty()){cout <<"(3)列队为空"<<endl;return '\0';}char item = buffer[head];if(head == tail){head = tail = -1;}else{head = (head + 1) % size;}return item;
}void displayQueue(){if(isEmpty()){cout <<"(3)列队为空"<<endl;return;}int i = head;while (true){cout << buffer[i] << " ";if(i == tail)break;i = (i + 1)% size;}
}void destroy(){buffer.clear();head = tail = -1;
}
};int main(){string input1,input2;getline(cin,input1);getline(cin,input2);CircularQueue q(10);cout <<"(1)初始化队列q"<<endl;for(char c : input1){q.enqueue(c);}cout <<"(2)依次进队列元素:";q.displayQueue();cout <<endl;if(!q.isEmpty()){cout << "(3)队列为非空"<<endl;cout << "(4)出队一个元素"<<q.dequeue()<<endl;}else{cout<<"(3)队列为空"<<endl;return 0;}for(char c : input2){q.enqueue(c);}cout <<"(5)依次进队列元素:";for(char c : input2){cout << c <<" ";}cout <<endl;cout <<"(6)出队列序列:";while(!q.isEmpty()){cout <<q.dequeue()<<" ";}cout << endl;cout <<"(7)释放队列";q.destroy();return 0;
}/********** End **********/

测试结果:


在这里插入图片描述

http://www.lryc.cn/news/502101.html

相关文章:

  • 【数据结构——栈与队列】链栈的基本运算(头歌实践教学平台习题)【合集】
  • GIT CLONE ERROR: remote: [session-ec426a86] Access denied
  • GitHub 正式收录 MoonBit 作为一门通用编程语言!核心用户突破三万!
  • PHP中GD库的使用
  • docker安装Elasticsearch和Kibana
  • 【Linux】文件管理必备知识和基本指令
  • 欢迪迈手机商城设计与实现
  • 量化交易系统开发-实时行情自动化交易-3.4.2.3.数字货币市场深度数据
  • 有序集合ZSET【Redis对象篇】
  • 力扣-图论-9【算法学习day.59】
  • 如何选择安全、可验证的技术?
  • Allure在自动化测试中的应用
  • C# 探险之旅:第十一节 - 循环(foreach):一场“遍历”奇幻岛的大冒险!
  • Ubuntu24.04配置STMTrack
  • 【Java学习笔记】Map接口和常用方法
  • uniapp支持App横竖屏开发总结
  • 【工作笔记】Lombok版本变化导致的反序列化异常
  • 多模态大语言模型 MLLM 部署微调实践
  • LNMP和Discuz论坛
  • Cadence学习笔记 2 PCB封装绘制
  • 网络安全——防火墙
  • 【CSS in Depth 2 精译_074】第 12 章 CSS 排版与间距概述 + 12.1 间距设置(下):行内元素的间距设置
  • 短视频矩阵抖音SEO源码OEM独立部署
  • 使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
  • 在ensp中ACL路由控制实验
  • μC/OS-Ⅱ源码学习(3)---事件模型
  • Jmeter进阶篇(30)深入探索 JMeter 监听器
  • 虚幻引擎的工程目录结构
  • 深度学习中的yield
  • 数据库数据恢复—ORACLE常见故障有哪些?如何恢复数据?