java--算法--队列
Posted 张紫韩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java--算法--队列相关的知识,希望对你有一定的参考价值。
- 队列的应用场景:
-
数组模拟队列:
-
package com.model.queue; import java.util.Scanner; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/6/24 20:39 * * 数组模拟队列,并验证 */ public class ArrayQueueDemo01 { public static void main(String[] args) { ArrayQueue queue=new ArrayQueue(3); Scanner scanner = new Scanner(System.in); char key=\' \'; Boolean loop=true; while (loop){ System.out.println("s(show):显示队列"); System.out.println("e(exit):退出程序"); System.out.println("a(add):添加数据到队列"); System.out.println("g(get):从队列中取出数据"); System.out.println("h(head):查看队列的头数据"); key=scanner.next().charAt(0); switch (key){ case \'s\': queue.showQueue(); break; case \'e\': scanner.close(); loop=false; break; case \'a\': System.out.println("请输入一个选择"); int n=scanner.nextInt(); queue.addQueue(n); break; case \'g\': try { int res=queue.getQueue(); System.out.printf("取出的数据是%d\\n",res); }catch (Exception e){ System.out.println(e);; }finally { } break; case \'h\': try { int head= queue.headQueue(); System.out.printf("取出的数据是%d\\n",head); }catch (Exception e){ System.out.println(e); }finally { } break; default: break; } } System.out.println("退出程序"); } } class ArrayQueue{ private int maxSize; //队列的最大长度 private int front; //指向队列头部的前一个 private int rear; //指向队列的尾部 private int[] arr; //数组模拟队列 public ArrayQueue(int maxSize) { this.maxSize = maxSize; arr=new int[maxSize]; } boolean isFull(){ return maxSize-1==rear; } boolean isEmpty(){ return rear==front; } //添加元素 public void addQueue(int n){ //判断队列是否满了 if(isFull()){ System.out.println("队列已满,不能添加元素"); } rear++; arr[rear]=n; } //获取元素 public int getQueue(){ //判断对了是否为空 if (isEmpty()){ throw new RuntimeException(); } front++; return arr[front]; } //遍历所有的元素 public void showQueue(){ if (isEmpty()){ System.out.println("队列为空没有数据"); } for (int i = 0; i < arr.length; i++) { System.out.printf("arr[%d]=%d\\n",i,arr[i]); } } //获得头数据 public int headQueue(){ if (isEmpty()){ throw new RuntimeException("队列为空"); } return arr[front+1]; } }
-
以上是关于java--算法--队列的主要内容,如果未能解决你的问题,请参考以下文章
片段(Java) | 机试题+算法思路+考点+代码解析 2023
java数据结构与算法:单向队列与环形队列详解(图片+代码)
Java 数据结构 & 算法宁可累死自己, 也要卷死别人 6 循环队列