Java数据结构之《循环队列》题目

news2024/12/23 14:49:43

一、前言:

  这是怀化学院的:Java数据结构中的一道难度中等的一道编程题(此方法为博主自己研究,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢!) 后面其他编程题只要我写完,并成功实现,会陆续更新,记得三连哈哈! 所有答案供参考,不是标准答案,是博主自己研究的写法。

二、题目要求如下: 

(第 3 题) 循环队列(难度系数75)

循环队列
标准输入输出
题目描述:
根据给定的空间构造顺序循环队列,
规定队满处理方法为少用一个元素空间。例如,给定5个元素空间构造循环队列,则只能存放4个元素。试根据入队及出队操作判断队列最后的元素存放情况,并输出最后队列中的元素值,即完成给定入队及出列操作后一次性全部出队的元素值。要求采用顺序队列完成。
输入:
输入的第一行为一个自然数n,表示要求构造的顺序循环队列空间数。第二行为操作次k,接下来k行为出队入队操作,每行各代表一次操作。
入队用in表示出队用out表示,如果是入队,则in隔一空格后为一整数,表示入队元素值。

输出:输出完成所有入队出队操作后,一次性出队元素。用一个空格隔开。可以假定队在完成所有操作后不为空。
输入样例:
4
7
in 1
in 2
in 5
in 6
out
out
in 8
输出样例:
5 8

三、代码实现:(基本原理在代码注释中!)

补充:队列的引用却new的是实现类LinkedList的实例化,因为JDK提供的队列:Queue是一个接口,要有实现类去实现接口。

(1)创建一个Main类(里面有满足输入的变量与操作的方法):

package com.fs.qu;

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int n = sc.nextInt();  //代表需要测试的总次数
        int k = sc.nextInt();  //代表需要入队和出队的操作次数
        //队列是一个接口,要new它的实现类LinkedList对象才行
        Queue<Integer> queue = new LinkedList<>();  //设置集合中要操作的元素是整型
        while(k>0){
            String str = sc.next();
            //如果输入的是字符串"in",代表入队
            if(str.equals("in")){
                int value = sc.nextInt();
                if(queue.size()<n-1){
                    queue.add(value);  //入队
                }
            }
            //如果输入的是字符串"out",代表出队
            if(str.equals("out")){
                if(queue.size()>0){
                    queue.poll();  //出队
                }
            }

            k--;
        }
        //只要队不为空。就输出队列里的元素
        while(queue.size()>0){
            System.out.print(queue.poll()+" ");
        }
    }
}

四、不同情况的代码运行结果:

<1> 首先测试输入题目中输入样例:

<2>自己输入的测试: (建议手打,直接复制这个可能出现格式错误导致输出异常)

4
6
in 2
in 5
out
in 9
out
in 66

测试结果: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1275793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

夯实c基础

夯实c基础 区别&#xff1a; 图一的交换&#xff0c;&#xff08;交换的是地址而不是两数&#xff09;无法实现两数的交换。 题干以下程序的输出结果为&#xff08; c  &#xff09;。 void fun(int a, int b, int c){ ca*b; } void main( ){ int…

【Unity】Blender场景导入

素材 下载场景&#xff1a;https://www.aplaybox.com/details/model/keDSIks72Qh3 blender文件导出为.fbx文件&#xff0c;路径选择复制&#xff08;做的过程太乱了不知道有没有影响&#xff09;&#xff0c;物理类型选择网格&#xff0c;勾选应用变换 blender下的物体长度是u…

openbabel 安装 生成指纹方法

今日踩坑小结&#xff1a; openbabel 安装&#xff1a; 可以装&#xff0c;但是得在 Linux 环境下&#xff0c;win 环境装会报错&#xff08;安装不会报错&#xff0c;但是生成指纹的时候会&#xff09; 指纹&#xff1a; 在下面这个链接里&#xff0c;官方给出了命令行调用 o…

袖珍可穿戴手持气象仪是什么?

随着科技的不断发展&#xff0c;我们身边的世界正在变得越来越智能化。近日&#xff0c;一款名为WX-SQ12可穿戴手持气象仪的科技新品引起了人们的广泛关注。这款气象仪不仅具有创新性的可穿戴设计&#xff0c;还具备强大的气象数据监测功能&#xff0c;让用户可以随时掌握天气变…

nvm安装管理nodejs版本

1&#xff1a;如果之前先安装了nodejs先卸载nodejs 2&#xff1a;下载nvm&#xff0c;点击下载路径https://github.com/coreybutler/nvm-windows/releases&#xff0c;选择相应环境下载&#xff0c;如下window环境下载 下载成功后&#xff0c;选择NVM安装在哪个文件目录下&…

【图论】重庆大学图论与应用课程期末复习资料2-各章考点(计算部分)(私人复习资料)

图论各章考点 二、树1、避圈法&#xff08;克鲁斯克尔算法&#xff09;2、破圈法3、Prim算法 四、路径算法1、Dijkstra算法2、Floyd算法 五、匹配1、匈牙利算法&#xff08;最大权理想匹配&#xff08;最小权权值取反&#xff09;&#xff09; 六、行遍性问题1、Fleury算法&…

从 Oracle 到 TiDB,全链路数据迁移平台核心能力和杭州银行迁移实践

作者&#xff1a;邵健 杭州银行数据库专家 王辉 PingCAP 杭州银行在 TMS beta 阶段就进行了深度的测试体验&#xff0c;在过程中提供了大量的宝贵建议&#xff0c;帮助 TMS 进行了快速的优化和迭代。近期杭州银行借助 TMS 进行了多次 Oracle 生产数据库的迁移实践&#xff0c;…

双远心镜头:让视觉检测更精准、高效!

工业镜头是视觉系统中的重要组件&#xff0c;工业镜头的选型影响着整个系统的成像效果。在做视觉检测时&#xff0c;会遇到无法检测空间物体、无法控制视场变化、无法控制图像扭曲、对比度低、畸变大、反光等问题&#xff0c;这时普通的工业镜头并不能有效地解决问题&#xff0…

Electron+Ts+Vue+Vite桌面应用系列:TypeScript常用系统目录文件处理工具

文章目录 1️⃣ TypeScript操作电脑目录和文件1.1 获取磁盘信息1.2 获取目录下所有文件夹和文件1.3 新建文件夹1.4 新建文本1.5 重命名1.6 删除文件夹1.7 删除文件1.8 打开系统文件或系统文件夹1.9 根据字节转换文件大小带单位 优质资源分享 作者&#xff1a;xcLeigh 文章地址&…

JOSEF约瑟 剩余电流保护器 CLJ3-100A+LH30 导轨安装

CLJ3系列剩余电流动作继电器 系列型号&#xff1a; CLJ3-100A剩余电流动作继电器 CLJ3-250A剩余电流动作继电器 CLJ3-400A剩余电流动作继电器 CLJ3-630A剩余电流动作继电器 LH30剩余电流互感器 LH80剩余电流互感器 LH100剩余电流互感器 LH140剩余电流互感器 一、产品概…

Linux5-计划任务、进程

计划任务 一、cron 计划任务 周期性计划任务 cron 任务概述 • 用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务 • 软件包&#xff1a;cronie、crontabs • 系统服务&#xff1a;crond • 日志文件&#xff1a;/var/log/crond 管理计划任务策略 • 使用 cro…

Leetcode—1657.确定两个字符串是否接近【中等】

2023每日刷题&#xff08;四十五&#xff09; Leetcode—1657.确定两个字符串是否接近 算法思想 源于灵神 实现代码 class Solution { public:bool closeStrings(string word1, string word2) {int len1 word1.size();int len2 word2.size();if(len1 ! len2) {return fa…

【note: This is an issue with the package mentioned above, not pip.】

安装gym时出现问题&#xff0c;note: This is an issue with the package mentioned above, not pip. 报错原因&#xff1a; 缺失了某些依赖模块&#xff0c;所以安装报错。 Collecting package metadata (current_repodata.json): done Solving environment: failed with in…

阿里云新版公共实例从注册账号到创建设备生成参数教程

1 注册阿里云 打开阿里云官网&#xff0c;点击右上角的登录/注册 打开的界面按照图片输入手机号注册 注册成功后&#xff0c;登录返回第一次打开的界面&#xff0c;点击控制台 点击控制台后界面如下 点击左上角的菜单&#xff0c;弹出新窗口&#xff0c;搜索物联网平台 开通物…

分治算法——75. 颜色分类

文章目录 &#x1f33f;0. 分治&#x1f33b;1. 题目&#x1f33c;2. 算法原理&#x1f334;3. 代码实现 &#x1f33f;0. 分治 分治分治&#xff0c;顾名思义分而治之&#xff0c;将一个大问题转换成若干个子问题&#xff0c;再将这些子问题的基础上继续划分成更小的子问题&a…

springboot+java校园自助洗衣机预约系统的分析与设计ssm+jsp

洗衣服是每个人都必须做的事情&#xff0c;而洗衣机更成为了人们常见的电器&#xff0c;但是单个洗衣机价格不菲&#xff0c;如果每人都买&#xff0c;就会造成资源的冗余。所有就出现了公用设备&#xff0c;随着时代的发展&#xff0c;很多公用都开始向着无人看守的自助模式经…

centOS使用docker部署ElasticSearch和Kibana

一、docker部署ElasticSearch 1、创建网桥 docker network create xybnet 2、下载镜像 docker pull elasticsearch:8.2.0 3、先运行容器 docker run -d \ --name es \ --net xybnet \ -p 9200:9200 \ -p 9300:9300 \ -p 5601:5601 \ -e "discovery.typesing…

笔记二十四、剖析Redux的工作流程

24.1 定义 用做于状态管理的第三方 js 库react框架中使用&#xff0c;也可应用于其他的框架 使用场景 组件间需要共享状态和改变另一个组件的状态在react项目中可以不使用就尽量不用&#xff0c;复杂场景下才使用 24.2 原理图 24.3 代码 安装 yarn add reduxjs/toolkit rea…

【linux】/etc/security/limits.conf配置文件详解、为什么限制、常见限制查看操作

文章目录 一. limits.conf常见配置项详解二. 文件描述符&#xff08;file descriptor&#xff09;简述三. 为什么限制四. 相关操作1. 展示当前资源限制2. 查看系统当前打开的文件描述符数量3. 查看某个进程打开的文件描述符数量4. 各进程占用的文件描述符 /etc/security/limits…

软著项目推荐 深度学习图像风格迁移

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习图像风格迁移 - opencv python 该项目较为新颖&#xff0c;适合作为竞赛课题…