Java数据结构(三)—— 队列
队列(Queue)
队列的应用场景
银行排队案例,买票案例
队列概述
-
队列是一个有序列表,可以用数组或是链表来表现
-
遵循先进先出的元组
队列的实现方式
数组形式
代码实现
package com.why.data_structure.queue;
import java.awt.*;
import java.util.Arrays;
import java.util.Scanner;
/**
* @Description TODO 用数组模拟队列
* @Author why
* @Date 2020/10/16 8:40
* Version 1.0
**/
public class ArrayQueueDemo {
public static void main(String[] args) {
ArrayQueue arrayQueue = new ArrayQueue(20);
char key = ' ';//接受用户输入
Scanner scanner = new Scanner(System.in);
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':
arrayQueue.showQueue();
break;
case 'a':
System.out.println("输入一个数");
int value = scanner.nextInt();
arrayQueue.addQueue(value);
break;
case 'g':
try {
int res = arrayQueue.subQueue();
System.out.printf("取出的数据是%d\n",res);
}catch (Exception e){
System.out.println(e.getMessage());
}
break;
case 'h':
try {
int res = arrayQueue.headQueue();
System.out.printf("数据头数据是%d\n",res);
}catch (Exception e){
System.out.println(e.getMessage());
}
break;
case 'e':
scanner.close();
loop = false;
System.out.println("程序退出");
break;
default:
break;
}
}
}
}
//编写一个数组模拟队列的类
class ArrayQueue{
private int maxSize;//数组最大容量
private int