数据结构与算法Java实现-02创建一个队列

    科技2026-03-04  7

    day01-创建一个队列

    package aStudy.day1; import java.util.Scanner; /** * @author haoqi * @Date 2020/9/21 - 9:40 * * 02.队列 */ public class data02 { public static void main(String[] args) { // exam //1.创建队列 ArrayQueue queue = new ArrayQueue(3); char key = ' '; //接受输入 Scanner scanner = new Scanner(System.in); boolean loop = true; //2.输出菜单 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 'a' : System.out.println("输入一个数"); int value = scanner.nextInt(); queue.addQueue(value); break; case 'g' : try { int res = queue.getQueue(); System.out.println("取出的数 "+res); }catch (Exception e){ e.printStackTrace(); } break; case 'e' : scanner.close(); loop = false; break; default: break; } } System.out.println("exit"); } } //使用数组模拟队列的类 class ArrayQueue{ //1.定义数据 private int maxSize; //数组对大容量 private int front; //队头 private int rear; //队尾 private int[] arr; //用于存放数据模拟队列 //2.创建队列构造器 public ArrayQueue (int arrMaxSize){ maxSize = arrMaxSize; arr = new int[maxSize]; front = -1; //队头,元素前一个位置 rear = -1; // 队尾, } //3.判断队列是否满 public boolean isFull(){ return rear == maxSize-1; } //4.判断队列是否空 public boolean isEmpty(){ return rear == front; } //5.添加数据到队列 public void addQueue(int n){ //判断队列是否满 if (isFull()){ System.out.println(" 队列已满 "); return; } arr[++rear] = n; } //6.获取数据队列,出队 public int getQueue(){ if (isEmpty()){ throw new RuntimeException("队列已空"); } return arr[++front]; } //7.显示队列所有数据 public void showQueue(){ if (isEmpty()){ System.out.println("队列已空 "); return; } for (int i = 0; i < arr.length; i++) { System.out.printf("arr[%d] = %d\n",i,arr[i]); } } //8.显示队列头数据,(不是取出数据) public int headQueue(){ if (isEmpty()){ throw new RuntimeException("队列已空"); } return arr[front+1]; } }
    Processed: 0.017, SQL: 9