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

队列的简单例题

题目如下

模拟队列

首先你要明白队列的话 只有队尾才能进行新增,也就是入队 只有队首才能出队,也就是删除 队首队尾指针一开始默认都是0 相当于队列中一开始是有一个元素的就是 0的位置 队首指针head=0 队尾指针tail=0

1.入队也就是队尾要先赋值,然后队尾指针前移,tail++ tail=1;

2.删除的话就是出队,出队只能在队尾,而且出队之前你还要判断队列是否为空,就是除了一开始加入元素之前,head可以等于tail之后都不可以,tail==head ,就代表队列为空, 队列为空的话,你想队列都空了(没有元素了),怎么删除队列的元素,不为空才能删除元素

3.判空同上head==tail就是空的

代码如下

import java.util.Scanner;

public class Main {
//    队首队尾
    static int head =0;
    static int tail =0 ;
    static int[] h = new int [100010] ;

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m =in.nextInt();
        String op ;
//        m组查询
        for (int i = 0; i < m; i++) {
            op = in.next();
            //    向队伍的末尾插入元素
            if(op.equals("push")){
                h[tail++] = in.nextInt();
            }
            //    从队头删除元素
            else if(op.equals("pop")){
//                判断是否为空,不为空才能出队
                if(head!=tail){
                head+=1;
            }

            }
//            判断队列是否为空
            else if(op.equals("empty")){
                System.out.println(head==tail?"YES":"NO");
            }
            //            输出队首元素
            else if(op.equals("query")){
                if(head==tail){
                    System.out.println("empty");
                }else{
                    System.out.println(h[head]);
                }

            }

        }



        in.close();
    }


}


http://www.kler.cn/a/584123.html

相关文章:

  • 【故障处理系列--docker卷的挂载】
  • 我又又又又又又更新了~~纯手工编写C++画图,有注释~~~
  • vs code配置 c/C++
  • 第1关:整数对
  • 鸿蒙开发者社区资源的重要性
  • K8s 1.27.1 实战系列(九)Volume
  • 【Swift】面向协议编程之HelloWorld
  • 网络安全与七层架构
  • 【AIGC图生视频】蓝耘实践:通义万相2.1进阶玩法
  • 爬虫逆向:Unicorn 详细使用指南
  • 城市客运安全员适合哪几类人报考
  • 卷积神经网络(笔记03)
  • Android调试工具之ADB
  • WPF未来展望:紧跟技术发展趋势,探索新的可能性
  • Spring Boot 集成 Lua 脚本:实现高效业务逻辑处理
  • 抖音生活服务联动监管开展专项整治 济南66家违规餐饮商家下架
  • springboot websocket语音识别翻译
  • 代码随想录二刷|图论2
  • LVGL 中设置 UI 层局部透明,显示下方视频层
  • 微软 NativeAOT